[백준] 14888 연산자 끼워넣기, java
·
Coding Test/Baekjoon
14888번: 연산자 끼워넣기첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net문제 간단 설명 주어진 수와 주어진 연산자의 개수를 가지고 구할 수 있는 최댓값, 최솟값을 구하는 문제입니다. 주어진 수의 배치는 변경할 수 없으며, 연산은 무조건 왼쪽부터 시행한다는 조건이 가지고 있어 그렇게 어려워 보이지는 않는 문제였습니다.문제 풀이 저는 dfs를 이용하여 풀어보았습니다. 생각을 떠오르기 전에는 뭔가 힘들었는데 dfs로 풀면 되겠다라고 떠오르고 나니 생각보다 쉽게 해결을 한 문제입니다. 사실..
[백준] 14503 로봇 청소기, 자바
·
Coding Test/Baekjoon
14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 문제 간단 설명 보드가 주어지고 로봇청소기가 이동하며 먼지를 청소합니다. 몇칸의 먼지를 청소 할 수 있는치 카운트 하는 문제입니다. 문제 풀이 특별한 알고리즘이 필요하다기 보다는 문제에서 주어진 대로 구현하는 문제입니다. 보드 안에서 네 방향의 탐색을 할 수 있다면 풀 수 있는 문제입니다. 코드 package com.baekjoon.gold; import java.io.BufferedReader; import ja..
[백준] 10989 자바
·
Coding Test/Baekjoon
10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 백준 브론즈1 문제입니다. 최대 10,000,000개의 데이터를 입력받아 정렬하여 출력하는 문제입니다. 데이터의 개수가 많으므로 Scanner를 이용한 입력이 아닌 BufferedReader를 이용한 입력을 받았고, 출력도 StringBuilder를 생성해서 한 번에 하였습니다. 2751번 문제와 똑같은 코드로 해결할 수 있었습니다. import java.io.*; import java.util.*; public class Main { public static void main(St..
[백준] 2751 자바
·
Coding Test/Baekjoon
2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 백준의 실버5 문제입니다. 이전에 풀었던 2750문제와 내용은 같지만 입력에 주어질 수 있는 수의 범위가 많이 증가했습니다. 그렇기 때문에 이전의 코드로 시도를 해봤지만 시간초과가 나타나게 됩니다. import java.util.*; public class Main { public static void main(String args[]){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[..
[백준] 2750 자바
·
Coding Test/Baekjoon
2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 백준의 브론즈2 문제입니다. 입력 받은 문자들을 정렬하여 그대로 출력하면 되는 문제입니다. 최대 데이터의 개수가 1000개로 그렇게 크지 않기 때문에 Scanner를 이용하여 입력을 받았고 Arrays.sort()를 이용하여 정렬하여 그대로 출력하였습니다. import java.util.*; public class Main { public static void main(String args[]){ Scanner sc = new Scanner(System.in); //데이..
[백준] 1920 자바
·
Coding Test/Baekjoon
1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 백준의 실버4 문제입니다. 문제 내용은 배열 내에 특정 숫자가 존재하는지 안하는지 판단하는 아주 간단한 문제라 브론즈 문제라고 생각할 수 있지만 그렇지 않은 이유가 있었습니다. import java.util.*; import java.io.*; public class Main { static int N, M; public static void main(String args[]) throws IOException{ ..
[Java] java에서 동기, 비동기란 무엇인가?
·
Study/Java
요즘 자료구조를 공부하는데 계속해서 나타나는 단어가 있습니다. 그게 바로 동기화 라는 단어인데 굉장히 유사한 기능을 가진 두 가지의 자료구조간의 차이점이 무엇인가 라고 찾아보았을 때 동기화 지원여부가 차이점인 경우가 종종 있었습니다. 여기에 포함되는 것이 ArrayList와 Vector, StringBuffer와 StringBuilder, HashMap과 HashTable의 경우가 제가 동기화 라는 단어를 접한 경우입니다. 각각의 차이점이 동기화 지원 여부라는 것은 이해를 하겠는데 그 동기화라는 것이 뭔지에 대해서 확실하게 이해를 하고 있지 않으니 자꾸 찝찝한 기분이 들었습니다. 그래서 정리를 해보려고 글을 써보기 시작했습니다. 일단 동기화를 이해하기 위해서는 쓰레드(Thread)라는 단어를 알아야 합니..
[Spring] @RequiredArgsConstructor 이란?
·
Study/Spring
@RequiredArgsConstructor 이란 무엇일까? Spring Boot를 이용한 프로젝트를 진행하면서 빈번하게 사용하는 어노테이션 중에 하나인 @RequiredArgsConstructor 가 있습니다. @RequiredArgsConstructor는 Lombok 이라는 java 라이브러리의 어노테이션 중 하나입니다. @RequiredArgsConstructor는 주로 생성자를 이용한 의존성 주입을 할 때 사용하는데 @RequiredArgsConstructor을 사용할 경우 생성자 생성코드를 대신해주어 깔끔한 코드를 작성하는데 도움을 줍니다. Before @Service public class ProductService { private final ProductRepository productRe..
[Java] java의 버전에 대해서 생각
·
Study/Java
저는 프로젝트를 진행 할 때에 막연하게 java 8은 너무 오래 된 버전 같기도 하고 java 버전 중에 LTS 버전이 무언가 좋다고 들은 것 같았기 때문에 java 8 다음의 LTS 버전인 java 11을 사용하고 있었습니다. 그리고 최근 보았던 면접에서 사용하고 있는 java 버전에 대한 질문을 받은 적이 있습니다. 답변은 java 11버전을 사용하고 있다고 하였는데 그렇다면 java 11버전이 되며 바뀐점이나 특징에 대한 연속 질문이 있었고, 제대로 답변을 하지 못한채 면접이 흘러간 경험이 있습니다. 이후 java 버전에 대해서 알아보기 시작했고 그 내용을 제가 알게된 것과 느낀 점을 적어보게 되었습니다. java는 현재 글을 작성하는 2022년 2월 10일 기준 17(LTS) 버전이 나온 상태이며..
[프로그래머스] 완주하지 못한 선수 (java)
·
Coding Test/Programmers
programmers.co.kr/learn/courses/30/lessons/42576?language=java 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { ArrayList part = new ArrayList(Arrays.asList(participant)); //ArrayList를 사용하기위한 p..
[백준] 3052 나머지 (java)
·
Coding Test/Baekjoon
www.acmicpc.net/problem/3052 3052번: 나머지 39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다. www.acmicpc.net import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); //숫자를 입력받기위한 scanner 객체 생성 int[] numbers = new int[10]; //숫자가 10개라고 주어졌기 때문에 크기가 10인 배열 생성 ArrayList numberList = new..
[백준] 1546 평균 (java)
·
Coding Test/Baekjoon
www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); //scanner 객체를 생성 String countStr = sc.nextLine(); //첫번째 입력으로 점수의 개수 입력 int count = Integer.parseInt(countStr); /..