코딩테스트 준비625 [백준] 2530번 - 인공지능 시계 [Java] https://www.acmicpc.net/problem/2530 1. 아이디어 몫과 나머지 연산으로 시각을 알아낼 수 있다.2. 문제풀이 A시 B분 C초에서 D초가 지났을 때 시각은 C + D초를 60으로 나눈 나머지가 초가 되고 몫을 B와 더한게 분이 된다. 다시 그렇게 구한 분을 60으로 나눈 나머지가 진짜 분이 되고 몫은 시가 된다. 다시 그렇게 구한 시를 A와 더한게 진짜 시가 되는데 이때 24시가 지나면 0시가 되므로 24로 나눈 나머지가 시가 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { Buf.. 2025. 1. 17. [백준] 2525번 - 오븐 시계 [Java] https://www.acmicpc.net/problem/2525 1. 아이디어 몫과 나머지 연산으로 시각을 알아낼 수 있다.2. 문제풀이 A시 B분에서 C분이 지났을 때 시각은 B + C 분을 60으로 나눈 나머지가 분이 되고 몫을 A와 더한게 시가 된다. 이때 24시가 넘어가면 0시부터 다시 시작되므로 시도 24도 나누어준 나머지로 해야한다.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.. 2025. 1. 17. [백준] 2501번 - 약수 구하기 [Java] https://www.acmicpc.net/problem/2501 1. 아이디어 모듈러 연산으로 간단하게 약수 여부를 구할 수 있다.2. 문제풀이 1부터 N까지 반복문을 돌며 N을 인덱스로 나눈 나머지가 0이면 약수가 된다는 점을 활용해서 구현했다.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.r.. 2025. 1. 17. [백준] 2851번 - 슈퍼 마리오 [Java] https://www.acmicpc.net/problem/2851 1. 아이디어 누적합을 활용한 브루트포스 알고리즘으로 해결할 수 있다.2. 문제풀이 슈퍼 마리오는 처음부터 중단하기 전까지 버섯을 집어야하므로 이를 누적합 배열로 구했다. 누적합을 구하면서 바로 브루트포스 알고리즘으로 정답 및 100과의 차이를 저장하는 ans, diff 변수를 활용해서 100과의 차이의 절댓값이 더 작으면 해당 수를 정답으로 하고 절댓값이 같으면 정답과 해당 수 중 더 큰 수를 저장하도록 구현했다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReade.. 2025. 1. 17. [백준] 2869번 - 달팽이는 올라가고 싶다 [Java] https://www.acmicpc.net/problem/2869 1. 아이디어 달팽이가 하루에 순수하게 올라가는 위치는 A - B만큼인 점을 활용했다.2. 문제풀이 높이 V의 나무 막대를 하루에 알짜로 A - B만큼 올라갈 수 있어서 몫 연산으로 얼추 한번에 계산할 수 있다. 실제로는 마지막 이동에서 정상에 도착하면 내려오지 않아도 되므로 V - A 높이까지 올라간 후 한번만 더 올라가면 된다. 이때 V - A까지 정확히 올라오면 한번만 더 올라가면 되지만 V - A보다 조금 더 올라갈 경우 몫 연산에서 버림처리가 되는 문제가 있어서 삼항연산자로 보정을 해주는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { pub.. 2025. 1. 17. [백준] 10811번 - 바구니 뒤집기 [Java] https://www.acmicpc.net/problem/10811 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(Sy.. 2025. 1. 17. [백준] 2935번 - 소음 [Java] https://www.acmicpc.net/problem/2935 1. 아이디어 10의 제곱꼴만 주어지므로 덧셈은 배열로 곱셈은 0의 개수를 파악해서 계산할 수 있다.2. 문제풀이 먼저 곱셈은 단순히 앞에 1 뒤에 0은 각 수의 자리수 -1 만큼 등장하므로 이를 StringBuilder에 넣는 방식으로 구현했다.덧셈은 더 큰 수의 크기만큼 배열을 만들고 덧셈을 수행한 후 다시 StringBuilder로 합치는 방식으로 구현했다. 배열은 각 자리수를 저장하는 역할을 한다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br =.. 2025. 1. 16. [백준] 10163번 - 색종이 [Java] https://www.acmicpc.net/problem/10163 1. 아이디어 영역을 2차원 배열로 나타내고 색종이를 덮는 걸 배열에 값을 채우는 것으로 생각하면 새로운 값으로 기존 값이 덮어지므로 각 색종이의 영역을 구할 수 있다.2. 문제풀이 문제 조건에 맞게 1001칸의 2차원 배열을 선언한 이후 for문의 인덱스를 활용해서 색종이 번호에 해당하는 칸들을 채워줬다. 이때 색종이의 한 점과 너비, 높이 정보로 2차원 배열에서 색종이를 채울 영역의 위치를 구할 수 있는 점을 활용해서 구현했다. 이후 카운팅 배열을 통해 각 색종이의 넓이를 구하면 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static voi.. 2025. 1. 16. [백준] 10984번 - 내 학점을 구해줘 [Java] https://www.acmicpc.net/problem/10984 1. 아이디어 총 학점은 각 학점의 합으로, 평점은 각 학점과 성적의 곱의 합을 총 학점으로 나누어서 구할 수 있다.2. 문제풀이 반복문으로 총 학점과 평점을 계산후 StringBuilder로 출력하는 방식으로 구현했다. 이때 소수점 아래 첫째 자리까지 깔끔하게 출력하기 위해 Math.round 메서드로 평점에 10을 곱한 후 소수점 자리를 날려주고 다시 10.0으로 나누는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { Buffe.. 2025. 1. 16. [백준] 10156번 - 과자 [Java] https://www.acmicpc.net/problem/10156 1. 아이디어 받아야하는 돈의 액수는 과자의 가격 * 과자의 개수 - 현재 가진 돈이다.2. 문제풀이 아이디어처럼 구현하면 되는데 이때 현재 가진 돈이 넉넉할 경우 돈을 받지 않아도 되므로 Math.max 메서드로 0과 받아야하는 돈을 비교하는 방식으로 구현했다.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. 16. [백준] 9325번 - 얼마? [Java] https://www.acmicpc.net/problem/9325 1. 아이디어 반복문을 활용하면 사칙연산을 간단하게 해결할 수 있다.2. 문제풀이 자동차의 가격 s에서 옵션의 가격과 개수의 곱인 p*q를 반복적으로 더해주는 방식으로 구현했다.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 Outp.. 2025. 1. 16. [백준] 2947번 - 나무 조각 [Java] https://www.acmicpc.net/problem/2947 1. 아이디어 버블 소트를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 나무 조각의 위치를 바꾸는 과정이 버블 소트와 동일하다. 버블 소트에서 스왑이 발생하면 스왑 후 조각들을 출력하면 되며 StringBuilder를 활용해서 한번에 출력하는 방식으로 구현했다.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. 16. 이전 1 ··· 18 19 20 21 22 23 24 ··· 53 다음