전체 글 73

[백준 / 실버4] 10845 : 큐 (JAVA)

문제 풀이 방법 Queue 사용한다. Queue를 사용하는 방법으로 Deque, Queue, LinkedList가 있는데 큐의 양쪽으로 접근이 필요하므로 Deque 사용 Switch 구문을 사용해서 input 별로 처리한다. 코드 package boj10845; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Deque; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOExc..

코딩테스트 2023.03.24

[백준 / 실버4] 1302 : 베스트셀러 (JAVA)

문제 풀이 방법 HashMap을 사용하여 key 값에는 책 제목, value 값에는 팔린 수를 저장한다. getOrDefault (Object Key, V defaultValue) (1) 맵에 저장할때마다 key값과 value값을 계속해서 이전의 값과 비교하여 더 큰 value값과 사전순으로 앞선 key값을 따로 저장하여 출력한다. (2) 또는, 최대값만 구하고 해당 최대값을 가진 key값을 리스트에 넣고 정렬하여 첫번째 책 제목을 출력한다. 코드 (1) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map;..

코딩테스트 2023.03.24

[백준 / 실버4] 2839 : 설탕 배달 (JAVA)

문제 풀이 방법 5로 나누어 떨어지거나 0보다 같거나 작아질때까지 반복문을 통해 계속 3을 빼주면서 카운트한다. n이 0보다 작아졌을 경우, -1 출력 그렇지 않을 경우, 3을 빼준 횟수와 반복문을 통해 3을 뺀 n을 5로 나눴을 때의 몫을 더해서 출력 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n ..

코딩테스트 2023.03.23

[백준 / 실버5] 5555 : 반지 (JAVA)

문제 풀이 방법 문자열 + 문자열로 만들어서 끝에서 앞으로 이어지는 부분을 해결한다. contains() 메소드를 활용해서 true일 경우, 카운트한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int n = Integer.parseInt(br.readLi..

코딩테스트 2023.03.21

MySQL 프로그래머스 문제 정리

가장 먼저 들어온 동물의 이름 출력 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1; 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원의 수 출력 SELECT COUNT (*) AS USERS FROM USER_INFO WHERE AGE BETWEEN 20 AND 29 AND YEAR(JOINED)=2021; 가격이 가장 비싼 음식 출력 👇🏻 LIMIT (LIMIT 시작점, 갯수 or LIMIT 갯수) SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1; 👇🏻 WHERE 조건문 SELECT PRODUC..

MySQL 2023.03.19

[프로그래머스 / lv 1] 같은 숫자는 싫어 (JAVA_해시)

문제 풀이방법 List 스택 Stack arr의 크기만큼 반복하면서 스택에 마지막으로 들어간 숫자를 확인(peek)하여 다르다면 추가(push)한다. 스택의 사이즈가 0일 경우에는 반드시 추가 필요 스택의 크기만큼 answer 배열을 생성한다. 스택의 값을 가져와(pop) answer 배열의 마지막 index부터 값을 넣는다. 스택은 후입선출 구조이기 때문 코드 👇🏻 List public int[] solution(int[] arr) { List answer = new ArrayList(); for (int i = 0; i < arr.length - 1; i++) { if (arr[i] != arr[i + 1]) { answer.add(arr[i]); } } answer.add(arr[arr.length..

코딩테스트 2023.03.19

[백준 / 실버5] 11866 : 요세푸스 문제 0 (JAVA)

문제 풀이 방법 Queue k번째 수가 되기 직전까지 맨 앞의 원소를 꺼내오고(poll) 꺼내온 원소들을 맨 뒤로 넣는다.(offer) k번째 수는 꺼내서(poll) 출력한다. List k값을 매번 k씩 증가시켜 해당 원소를 삭제하면서 그 값을 출력한다. 이때, 리스트의 시작은 0부터 이므로 k-1이며 참조하려는 인덱스가 참조 범위보다 커질 수 있으므로 현재 리스트의 크기를 나눈 나머지 값으로 증가시켜야 한다. 코드 👇🏻 Queue import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import j..

코딩테스트 2023.03.18

[백준 / 실버5] 2581 : 소수 (JAVA)

문제 풀이 방법 2 이상 N 미만의 수 중에 나누어 떨어지는 수가 존재하지 않을 경우 소수로 판별 시간 복잡도 : O(N²) 에라토스테네스의 체 알고리즘 시간 복잡도 : O(Nlog(log N)) link 코드 👇🏻 기본적인 방법 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S..

코딩테스트 2023.03.17

[백준 / 실버5] 1251 : 단어 나누기 (JAVA)

문제 풀이 방법 문자열을 나누기 위한 두 지점 i와 j를 잡고 이중포문을 통해 모든 경우의 수를 확인한다. [0, i), [i, j), [j, 마지막] 문자열 연산을 위해 StringBuilder 사용한다. String : 문자열 연산이 적고 멀티쓰레드 환경일 경우 StringBuffer : 문자열 연산이 많고 멀티쓰레드 환경일 경우 StringBuilder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우 연산한 문자열의 결과를 모두 ArrayList에 저장하여 정렬을 통해 가장 앞서는 단어를 출력한다. 코드 package boj1251; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp..

코딩테스트 2023.03.17

[백준 / 브론즈1] 1236 : 성 지키기 (JAVA)

문제 풀이 방법 모든 행과 모든 열에 한명 이상씩 있어야하므로 아무도 없는 행과 열의 수를 각각 구한다. 이 중 최대값을 출력한다. 코드 package boj1236; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..

코딩테스트 2023.03.17