코딩테스트 준비610 [백준] 15829번 - Hashing [Java] https://www.acmicpc.net/problem/15829 1. 아이디어 해시 함수를 직접 구현하는 문제로 힌트의 예제를 참고하면 간단한 반복문으로 구현할 수 있다.2. 문제풀이 해시 값을 구하는 과정에서 int형 오버플로우가 발생하게 돼서 long 타입으로 선언하고 매번 모듈러 연산을 해주는 방식으로 구현했다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int L = Integer.parseIn.. 2024. 12. 2. [백준] 2559번 - 수열 [Java] https://www.acmicpc.net/problem/2559 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)); StringToken.. 2024. 12. 2. [백준] 1439번 - 뒤집기 [Java] https://www.acmicpc.net/problem/1439 1. 아이디어 뒤집기의 최소 횟수는 0 묶음만 1로 뒤집거나 1묶음만 0으로 뒤집으면 된다.굳이 0으로 뒤집었다 1로 뒤집었다를 반복하지 않아도 돼서 간단하게 해결할 수 있다.2. 문제풀이 주어진 입력을 0으로 한번, 1로 한번 파싱해서 뒤집었을 때 최솟값을 출력하면 된다.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)); .. 2024. 12. 2. [백준] 2217번 - 로프 [Java] https://www.acmicpc.net/problem/2217 1. 아이디어 특정 로프가 버틸 수 있는 최대 중량에 대해 해당 로프보다 버틸 수 있는 최대 중량이 큰 로프는 해당 중량을 버틸 수 있으므로 로프를 버틸 수 있는 중량으로 정렬한 후 특정 로프가 버틸 수 있는 최대 중량과 해당 로프보다 버틸 수 있는 최대 중량이 큰 로프의 수를 곱해서 로프들로 버틸 수 있는 최대 중량을 구한다.2. 문제풀이 정렬 이후 물체의 최대 중량을 갱신하며 찾아나가기만 하면 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { B.. 2024. 12. 2. [백준] 1541번 - 잃어버린 괄호 [Java] https://www.acmicpc.net/problem/1541 1. 아이디어 뺄셈 기호 사이의 수를 먼저 더하고 빼는게 최소값이 된다는 점을 활용한다.2. 문제풀이 수와 덧셈 기호로 이루어진 문자열을 파싱해서 합을 구하는 sum 메서드를 먼저 만들었다. 이후 뺄셈 기호로 주어진 입력을 파싱하고 첫 토큰의 합에서 나머지 토큰들의 합을 빼주면 된다.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.i.. 2024. 12. 2. [백준] 10430번 - 나머지 [Java] https://www.acmicpc.net/problem/10430 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)); StringTokenizer st = new StringTokenizer(br.readLine()); .. 2024. 12. 2. [백준] 11399번 - ATM [Java] https://www.acmicpc.net/problem/11399 1. 아이디어 인출하는데 걸리는 시간이 짧은 사람부터 인출을 하는게 전체 인출시간의 합이 최소가 된다는 점을 활용한다.2. 문제풀이 앞에 인출한 사람이 걸린 시간만큼 뒷사람들이 영향을 받으므로 인출하는데 걸리는 시간이 짧은 사람부터 인출하도록 정렬을 해준다. 이후 정렬된 배열의 누적합 배열을 구하면 각 사람이 인출하는데 걸리는 시간을 구할 수 있고, 누적합 배열의 총합이 인출하는데 걸리는 전체 시간이 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { .. 2024. 12. 2. [백준] 1026번 - 보물 [Java] https://www.acmicpc.net/problem/1026 1. 아이디어 S의 최솟값은 작은 수와 큰 수의 곱의 합으로 이루어졌을 때라는 점을 활용한다.2. 문제풀이 두 배열에서 가장 큰 수와 가장 작은 수를 매칭시키고 다음으로 큰 수와 다음으로 작은 수를 매칭시키는 과정을 반복하면 되므로 두 배열을 정렬한 후 인덱스를 하나는 정방향, 하나는 역방향으로 순회하며 곱해서 최솟값을 구해준다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new .. 2024. 12. 2. [백준] 11047번 - 동전 0 [Java] https://www.acmicpc.net/problem/11047 1. 아이디어 필요한 동전이 최소가 되려면 가장 단위가 큰 동전부터 최대로 사용하는 걸 반복하면 된다.2. 문제풀이 동전의 가치가 오름차순으로 주어지는데 나중에 개수를 셀 때 향상된 for문으로 계산하기 위해 내림차순이 되게 배열에 저장한다. 이후 배열을 순회하며 단위가 큰 동전을 최대한 사용하고 동전을 사용한만큼 남은 금액을 갱신해주는 과정을 반복하면 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new B.. 2024. 12. 2. [백준] 10820번 - 문자열 분석 [Java] https://www.acmicpc.net/problem/10820 1. 아이디어 문자열에 포함된 소문자, 대문자, 숫자, 공백을 구분해서 개수를 구해야 하는데 이때 각각의 아스키 코드로 구분할 수 있는 점을 활용했다.2. 문제풀이 아스키 코드 문자의 개수를 세는 카운팅 배열을 활용해서 각 문자의 개수를 전부 세고 이후 해당 범위의 개수의 합을 구하는 방식으로 구현했다. 카운팅 배열을 그냥 소문자, 대문자, 숫자, 공백 이렇게 4가지만 셀 수 있게 만들고 카운팅 배열에 넣을 때 조건을 걸어서 해결할 수도 있는데 이 방식이 가독성이 더 좋을 것 같았다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) t.. 2024. 12. 2. 이전 1 ··· 48 49 50 51 다음