본문 바로가기
반응형

PS 문제 풀이653

[BOJ] 백준 7568 덩치 Approach 출처: https://www.acmicpc.net/problem/7568 덩치 (몸무게, 키)를 비교하는 문제이다. 두 데이터로 비교하기 어려울 때는 동일한 등수로 처리한다. 동일한 등수가 몇명인지 등을 요구하지 않고 "본인 위에 덩치가 큰 사람이 몇명인지" 구하면 된다. ex) (55, 185) (58, 183) (88, 186) (60, 175) (46, 155) → 4번째 사람은 (60, 175) 인데, 본인 위에 한명만 있기 때문에 2등이다. 입력 값(몸무게와 키)을 먼저 배열에 저장한다. 한명씩 차례대로 전체 사람중에 몇등인지 확인하고 바로 출력한다. C++ #include using namespace std; const int MAX_N = 50 + 2; int N, ans; .. 2022. 3. 3.
[BOJ] 백준 5622 다이얼 Approach 출처: https://www.acmicpc.net/problem/5622 조건문 (if / switch)을 통해서 구현 가능하다. Java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int sum = 0; for (int i = 0; i = 3 && temp < 6) {.. 2022. 3. 2.
[BOJ] 백준 4948 베르트랑 공준 Approach 출처: https://www.acmicpc.net/problem/4948 [N, 2N] 사이의 소수 개수를 구하는 문제이다. 입력 개수가 많을 수 있기 때문에 효율적으로 소수 개수를 구할 수 있는 "에라토스테네스의 체" 개념을 이용한다. • 소수 (Prime Number) 찾기 - 1 (Basic) • 소수 (Prime Number) 찾기 - 2 • 소수 (Prime Number) 찾기 - 3 (에라토스테네스의 체) #include const int MAX_N = (123456 * 2) + 2; int prime[MAX_N] = { 1, 1, 0, }; int N, ans; int main() { // freopen("input.txt", "r", stdin); for(int i = 2;.. 2022. 2. 28.
[BOJ] 백준 10866 덱 Approach 출처: https://www.acmicpc.net/problem/10866 deque를 구현하는 문제이다. 덱은 stack, queue와 마찬가지로 자료구조 공부하는데 있어서 자주 나오는 자료구조이다. 앞/뒤로 push/pop이 되는 구조로 C++에서는 STL로 제공되기 때문에 비교적으로 쉽게 해결할 수 있는 문제이다. * 앞뒤 방향과 비어있는 상태에 따른 출력처리에 유의 📌 [스택] Stack 이란? [스택] Stack 이란? Stack 이란? 스택 (Stack) 특징을 가장 잘 나타내는 표현은 후입선출(Last In First Out, LIFO) 이다. ▶ 스택(Stack)은 삽입(push)과 삭제(pop)이 한쪽 끝에서만 일어나는 구조 가장 상단에 위치한 원소를 가리. zoosso... 2022. 2. 25.
[BOJ] 백준 4673 셀프 넘버 Approach 출처: https://www.acmicpc.net/problem/4673 1 → 1 + 1 = 2 ("2" 셀프넘버가 아니다.) 2 → 2 + 2 = 4 ("4" 셀프넘버가 아니다.) 3 → 3 + 3 = 6 ("6" 셀프넘버가 아니다.) ... 위 과정을 {숫자} + {각 자리 수} 2022. 2. 25.
[BOJ] 백준 11441 합 구하기 Approach 출처: https://www.acmicpc.net/problem/11441 구간합을 구하는 문제이다. 배열로 원소를 담아서 [s, e] 구간의 합을 구해도 된다. 📌 연속된 부분 합(연속합) - 1 (완전 탐색) Java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = Integer.parseInt(sc.nextLine()); int[] arr = new int[N+1]; for(int i=1; i 0) { int start = Integer.parseInt(sc.next()); int finish = .. 2022. 2. 23.
[BOJ] 백준 11653 소인수분해 Approach 출처: https://www.acmicpc.net/problem/11653 N = 72가 주어졌다고 했을 때 오름차순으로 출력되도록 소인수 분해하는 쉬운 방법은 2, 3, 5, 7, … 순으로 나누다가가 완전히 나누어 떨어질때 까지 반복하는 것이다. • 72 / 2 = 36 → 36 / 2 = 18 → 18 / 2 = 9 ( 「2」로는 더 이상 나누어지지 않음) ▶ 「2」 를 세번 출력 • 9 / 3 = 3 → 3 / 3 = 1 ( 「3」으로는 더 이상 나누어지지 않음) ▶ 「3」 을 두번 출력 C++ #include using namespace std; int n; int main() { scanf("%d",&n); if (n == 1) return 0; int val = 2; whil.. 2022. 2. 22.
[BOJ] 백준 2920 음계 Approach 출처: https://www.acmicpc.net/problem/2920 8개의 숫자가 주어질 때 원소들이 오름차순이지 내림차순인지 아니면 섞여(mixed) 인지 확인하는 문제이다. 8개의 숫자는 1~8로 정해져 있기 때문에 배열 arr[i]에서 해당하는 위치에 맞는 숫자인지 확인하면 된다. 배열 크기가 크지 않아서 중간 break는 굳이 하지 않았다. #include using namespace std; int arr[8]; bool mode[2] = {true, true}; int main() { // freopen("input.txt", "r", stdin); for (int i = 0; i > arr[i]; if (arr[i] != i + 1) mod.. 2022. 2. 20.
[BOJ] 백준 9020 골드바흐의 추측 Approach 출처: https://www.acmicpc.net/problem/9020 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다고 한다. 이러한 수를 "골드바흐 수"라고 한다. 해당 짝수를 [두 소수의 합]으로 표현할 때 그 조합을 "골드바흐 파티션" 이라고 한다고 한다. Test Case가 주어지고 숫자 N이 주어질 때, 두 소수의 차이가 가장 작은 골드바흐 파티션을 구해야 한다. 문제 조건상 N의 최대값은 10,000이므로 1~10,000까지의 소수를 미리 구해놓는다. (코드에서는 숫자 0, 1, 2에 대해서는 미리 소수 처리. [에라토스테네스의 체] 개념을 이용한다. 소수 (Prime Number) 찾기 - 3 해당 게시글은 에라토스테네스의 체를 이용해서 소수 찾기를 구현한 게시글.. 2022. 2. 17.
[BOJ] 백준 11866 요세푸스 문제0 Approach 출처: https://www.acmicpc.net/problem/11866 [BOJ 1158 요세푸스] 문제 보다 조건이 더 쉬워진 버전이다. ex) 메모리 제한, N의 최대값 등 [BOJ] 백준 1158 요세푸스 문제 출처: https://www.acmicpc.net/problem/1158 Input 7 3 Output 배열에서 K번째 원소를 찾은 후, 제거된 순서대로 Queue에 넣어줍니다. K 번째 원소를 찾을 때 원형 큐를 찾거나, 원소를 재배치하여 처리할.. zoosso.tistory.com [큐] Queue를 이용하면 쉽게 풀 수 있는 문제이다. 알고리즘 공부하는 사람들에게 요세푸스 문제가 Queue 자료구조를 연습하기 좋은 유형이기도 하다. [큐] Queue란? Queue란?.. 2022. 2. 17.
반응형