본문 바로가기

Algorithm/Baekjoon82

[백준] 25314번 : 코딩은 체육과목 입니다 - Java https://www.acmicpc.net/problem/25314 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(.. 2023. 7. 19.
[백준] 25304번 : 영수증 - Java https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int total = sc.nextInt(); int count = sc.nextInt(); for(int i = 0; i < count; i++) { int price = sc.n.. 2023. 7. 19.
[백준] 11382번 : 꼬마 정민 - Java https://www.acmicpc.net/problem/11382 11382번: 꼬마 정민 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. www.acmicpc.net 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); long a = in.nextLong(); long b = in.nextLong(); long c = in.nextLong(); System.out.println(a + b + c); } } int (4 bytes)보다 큰 값을 출력할 수도 있으므로 long (8 .. 2023. 7. 18.
[백준] 1436번 : 영화감독 숌 - Java https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 풀이 1. 브루트포스 + Scanner 입력받은 N과 count가 같아질 때까지 num을 1씩 증가시켜 666이 포함되는지 계속 검사 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); i.. 2022. 5. 10.
[백준] 25083번 : 새싹 - Java https://www.acmicpc.net/problem/25083 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net 알고리즘 제어문자(이스케이프 시퀀스) 문법적 기능들을 담는 단어들은 그대로 출력 불가 백슬래시(\) + 문자 조합으로 해당 문자를 그대로 출력할 수 있게 만듦 풀이 public class Main { public static void main(String[] args) { String s = " ,r'\"7\n" + // \", \n : 제어문자 "r`-_ ,' ,/\n" + // \n : 제어문자 " \\. \". L_r'\n" + // \\, \", \n : 제어문자 " `~\\/\n" + // \\, \n : 제어문자 " |\n" + // \n :.. 2022. 5. 10.
[백준] 7568번 : 덩치 - Java https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 주의점 키와 몸무게 모두 클 때 = 덩치가 크다 알고리즘 브루트포스 방식 활용 키와 몸무게 담는 2차원 배열 생성 후 이중 반복문 통해 각 배열의 인덱스 모두 탐색 풀이 1. Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanne.. 2022. 4. 26.
[백준] 2231번 : 분해합 - Java https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 알고리즘 - 브루트 포스 정의 난폭한(무식한) 힘 무차별적 대입 방법 특징 가능한 모든 경우의 수 대입 ➡ 조건에 만족하는 값만을 찾아냄 자원만 충분하다면 원하는 값을 100% 확률로 찾을 수 있음 "빠짐 없이" 완전탐색 알고리즘을 잘 설계하는 게 핵심 구현 방법 1. 예제 //예제1 - 198 198 + 1 + 9 + 8 = 216 198 = 생성자 216 = 198.. 2022. 4. 12.
[백준] 2798번 : 블랙잭 - Java https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 알고리즘 - 브루트 포스 정의 난폭한(무식한) 힘 무차별적 대입 방법 특징 가능한 모든 경우의 수 대입 ➡ 조건에 만족하는 값만을 찾아냄 자원만 충분하다면 원하는 값을 100% 확률로 찾을 수 있음 "빠짐 없이" 완전탐색 알고리즘을 잘 설계하는 게 핵심 풀이 1. Scanner import java.util.Scanner; public class Main { pub.. 2022. 4. 12.
[백준] 11729번 : 하노이 탑 이동 순서 - Java https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 주의점 Scanner + System.out.println(): 시간 초과 에러 발생 알고리즘 재귀 핵심 순서 일정 규칙 찾기 ➡ 최소 단위에서 적용 재귀를 통해 '가장 작은 단위'가 될 때까지 재귀 호출 반복 가장 작은 단위까지 호출되면 그 지점에서 구현한 연산 실행 하노이의 탑 핵심 규칙 큰 원판이 작은 원판 위에 있어서는 안 됨 하노이의 탑 풀이 n개의 원판이 있다고 가정 1. .. 2022. 4. 7.
[백준] 2447번 : 별 찍기 - 10 - Java https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 주의점 Scanner + System.out.println(): 시간 초과됨 출력 방법 : StringBuilder / BufferedWriter 활용하기 알고리즘 N = 3일 때 한 블럭의 모양 블럭의 가운데는 공백 N = 31 N = 32 = 9 N = 33 = 27 N이 3의 제곱수일 때 정리 N = 27 일 때 9개의 블록으로 구분 공백 구간 만족 시 그 구간은 .. 2022. 4. 6.
[백준] 10870번 : 피보나치 수 5 - Java https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 풀이 1. Scanner + 재귀함수 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); System.out.println(fibonacci(N)); .. 2022. 4. 5.
[백준] 1002번 : 터렛 - Java https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 알고리즘 조규현 A 백승환 B A 터렛의 위치(𝑥₁, 𝑦₁) B 터렛의 위치(𝑥₂, 𝑦₂) 마린(류재명) C A와 B가 자신의 위치로부터의 거리 각각 계산 A부터 C까지의 거리 𝑟₁ B부터 C까지의 거리 𝑟₂ ➡ 𝑥₁, 𝑦₁, 𝑟₁, 𝑥₂, 𝑦₂, 𝑟₂ 가 주어졌을 때 C가 있을 수 있는 위치의 수 찾기 각 터렛의 위치를 중심으로 C와의 거리를 반지름으로 하는 원 그리기 ➡ 반지름이 𝑟₁ 인 A 와 반지름이 𝑟₂ 인 B 의 접점의 개수 두 원의 접점.. 2022. 4. 4.