본문 바로가기

코딩테스트 준비610

[백준] 1644번 - 소수의 연속합 [Java] https://www.acmicpc.net/problem/1644 1.  아이디어 에라토스테네스의 체를 이용해서 소수를 구하고 투 포인터 알고리즘으로 연속합을 구하는 방식을 활용하면 해결할 수 있다.2. 문제풀이 에라토스테네스의 체를 이용해서 소수 리스트를 먼저 구했다.이후 투 포인터 알고리즘을 활용해서 소수의 연속합을 구하는데 포인터는 둘다 앞쪽에 위치시킨채 소수의 연속합이 N보다 작으면 오른쪽 포인터를 한칸 오른쪽으로, N보다 크면 왼쪽 포인터를 한칸 오른쪽으로 이동시키는 방식으로 구현했다.N이 1일 경우 예외처리를 해줘야 했는데 그냥 main 메서드에서 바로 종료하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { .. 2025. 1. 7.
[백준] 2960번 - 에라토스테네스의 체 [Java] https://www.acmicpc.net/problem/2960 1.  아이디어 에라토스테네스의 체의 구현 원리와 유사한 문제로 2중 for문을 통해 에라토스테네스의 체를 구현하는 로직을 약간 수정하면 해결할 수 있다.2. 문제풀이 방문체크를 통해 중복 제거를 방지하고 order 변수로 K번째 여부를 파악하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 2025. 1. 7.
[백준] 10214번 - Baseball [Java] https://www.acmicpc.net/problem/10214 1.  아이디어 for문을 활용하면 간단하게 구현할 수 있다.2. 문제풀이 for문으로 각 테스트 케이스를 돌고 다시 for문으로 9줄을 순회하며 경기 결과를 판정하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new .. 2025. 1. 7.
[백준] 1963번 - 소수 경로 [Java] https://www.acmicpc.net/problem/1963 1.  아이디어 에라토스테네스의 체를 이용한 소수 판정과 BFS 알고리즘을 조합해서 소수 경로의 길이를 구할 수 있다.2. 문제풀이 먼저 에라토스테네스의 체로 1000부터 9999 사이의 소수를 구해서 HashSet에 저장했다.이후 BFS 알고리즘에서 4자리 소수의 각 자릿수를 바꿔보며 소수이면 Queue에 넣는 방식으로 구현했다.몫과 나머지 연산을 응용해서 특정 자릿수 변경을 해주면 간단하게 구현할 수 있다.소수 경로는 BFS 알고리즘의 최단 경로 구하기와 동일하다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[].. 2025. 1. 7.
[백준] 18870번 - 좌표 압축 [Java] https://www.acmicpc.net/problem/18870 1.  아이디어 수직선 위에 주어진 좌표가 전체 좌표 중 중복을 제외하고 몇 번째로 큰 좌표인지 구하는 문제로 좌표에 대한 정렬을 수행 후 Map을 활용하는 방식과 이분 탐색을 활용하는 방식 두가지로 구현할 수 있었다.2. 문제풀이 1. HashMap주어진 좌표를 List로 받은 후 TreeSet에 복사해서 중복 제거 + 정렬을 수행했다. 이후 TreeSet을 순회하며 HashMap에 좌표와 순서를 저장해주었고 List를 순회하며 HashMap에서 순서를 조회하는 방식으로 구현했다. 2. 이분 탐색주어진 좌표를 배열로 받은 후 HashSet에 넣어 중복 제거를 수행했다. 이후 HashSet과 같은 크기의 배열에 넣고 정렬을 수행한 후 .. 2025. 1. 7.
[백준] 11557번 - Yangjojang of The Year [Java] https://www.acmicpc.net/problem/11557 1.  아이디어 소비한 술의 양과 학교 이름을 반복문에서 갱신해나가는 방식으로 간단하게 해결할 수 있다.2. 문제풀이 학교 이름은 ans, 소비한 술의 양은 max 변수에 반복문 내에서 소비한 술의 양이 더 많은 학교가 등장하면 갱신하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Buf.. 2025. 1. 7.
[백준] 5086번 - 배수와 약수 [Java] https://www.acmicpc.net/problem/5086 1.  아이디어 모듈러 연산으로 간단하게 배수와 약수 여부를 알 수 있다.2. 문제풀이 첫 번째 숫자를 두 번째 숫자로, 두 번째 숫자를 첫 번째 숫자로 각각 모듈러 연산을 하면 배수 약수 관계 여부를 알 수 있는 점을 활용해서 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter.. 2025. 1. 7.
[백준] 10103번 - 주사위 게임 [Java] https://www.acmicpc.net/problem/10103 1.  아이디어 반복문으로 반복해서 점수를 갱신하면 간단하게 해결할 수 있다.2. 문제풀이 for문 내에서 입력 값을 계속 비교 후 처리하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int N = Integer.parseInt(br.rea.. 2025. 1. 7.
[백준] 10988번 - 팰린드롬인지 확인하기 [Java] https://www.acmicpc.net/problem/10988 1.  아이디어 StringBuilder의 reverse 메서드로 간단하게 팰린드롬 여부를 비교해볼 수 있다.2. 문제풀이 문자열을 뒤집을 수 있는 reverse 메서드를 활용해서 그냥 입력받은 문자열과 뒤집은 문자열이 동일한지 비교하는 방식으로 구현했다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readL.. 2025. 1. 7.
[백준] 26711번 - A+B [Java] https://www.acmicpc.net/problem/26711 1.  아이디어 BigInteger 클래스로 큰 수의 연산을 간단하게 처리할 수 있다.2. 문제풀이 최대 5000자리 수에대한 덧셈 연산은 기본 타입으로 처리하기 어려워서 BigInteger 클래스와 add 메서드를 활용했다.3. 코드 import java.io.*;import java.math.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BigInteger a = new Bi.. 2025. 1. 7.
[백준] 30676번 - 이 별은 무슨 색일까 [Java] https://www.acmicpc.net/problem/30676 1.  아이디어 if else if else 조건 분기로 간단하게 해결할 수 있다.2. 문제풀이 파장이 긴 색부터 조건으로 처리하도록 구현했다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); if (N >= 620) System.out.println("Red".. 2025. 1. 7.
[백준] 15964번 - 이상한 기호 [Java] https://www.acmicpc.net/problem/15964 1.  아이디어 문제 조건에 맞게 연산만 수행하면 되는 문제로 곱셉 과정에서 int형 오버플로우가 발생할 수 있는 점에 주의해야한다.2. 문제풀이 println 메서드로 바로 출력했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.. 2025. 1. 7.