문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 풀이 과정 필자는 다음과 같이 풀이했다. 등장할 수 있는 수의 범위는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이기 때문에, 미리 최솟값은 1,000,001 으로, 최댓값은 -1,000,001 로 설정한다. 앞으로 입력되는 수들은 무조건 -1,000,000보다 크거나 같기 때문에 ..
문제 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. 출력 X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다. 풀이 과정 주어진 수열을 순차적으로 탐색하며 X보다 작은 수가 주어지면 출력한다. C #include int main(void) { int n, x; scanf("%d %d", &n, &x); int tmp; for (int i = 0; i < n; i++) { sc..
문제 무게가 서로 다른 N 개의 물건이 있다. 각 물건은 1부터 N 까지 번호가 매겨져 있다. 우리는 일부 물건 쌍에 대해서 양팔 저울로 어떤 것이 무거운 것인지를 측정한 결과표를 가지고 있다. 이 결과표로부터 직접 측정하지 않은 물건 쌍의 비교 결과를 알아낼 수도 있고 알아내지 못할 수도 있다. 예를 들어, 총 6개의 물건이 있고, 다음 5개의 비교 결과가 주어졌다고 가정하자. ([1]은 1번 물건의 무게를 의미한다.) [1]>[2], [2]>[3], [3]>[4], [5]>[4], [6]>[5] 우리는 [2]>[3], [3]>[4]로부터 [2]>[4]라는 것을 알 수 있다. 하지만, 물건 2와 물건 6을 비교하는 경우, 앞서의 결과만으로는 어느 것이 무거운지 알 수 없다. 이와 같이, 물건 2는 물건..
문제 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. 출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. 풀이 과정 - 1 주어진 정수들을 배열 (리스트) 에 저장한 뒤 순차적으로 탐색하며 찾으려고 하는 정수 v를 세주면 되는 문제이다. C #include int arr[101]; int main(void) { int n; scanf("%d", &n); for (int i = 0; i < n; i++) ..
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 풀이 과정 EOF 를 처리하는 방법에 대해 배우는 문제이다. 기존에는 0이 들어오면 반복문을 종료하면 되는 문제였지만 EOF를 처리하는 것은 생소할 수도 있을 것이다. 선호하는 언어의 EOF를 처리하는 방법을 숙지한다면 이후 EOF 를 다루는 문제를 만날 때 수월하게 해결할 수 있을 것이다. C #include int main(void) { int a, b; while(scanf("%d %d", &a, &b) == 2)..
문제 공군 훈련소의 훈육조교는 훌륭한 조교가 되기 위해 오늘도 피나는 제식 연습을 진행한다. 오늘 연습하려고 하는 제식은 총 세 가지로, 현재 바라보는 방향을 기준으로 각각 왼쪽으로 90도 회전하는 좌로 돌아, 오른쪽으로 90도 회전하는 우로 돌아, 뒤로 180도 회전하는 뒤로 돌아이다. 좌로 돌아, 우로 돌아, 뒤로 돌아를 1회 수행하는 데에는 각각 A, B, C만큼의 에너지가 든다. 오늘 조교의 총 에너지는 K만큼 남아있으며, 최고의 훈련을 위해 모든 K만큼의 에너지를 전부 소진하려고 한다. 조교는 본인의 에너지를 모두 소모하여 연습을 끝냈을 때 처음 바라보던 방향과 완벽히 동일한 방향을 바라보고자 한다. 또한, 어지러움으로 인한 흐트러짐을 막기 위해 제식의 수행 횟수를 최소화하고자 한다. 조교가 정..
구름톤 챌린지가 20일차를 끝으로 마무리 되었습니다! 20일차 동안 문제를 풀면서 느꼈던 점은, 코딩테스트를 준비하는 사람들에게 교육적인 문제가 많이 출제되어 유익하다는 점과 문제 하나하나가 재밌어서 매일 참여해야겠다는 흥미를 얻을 수 있었다는 점입니다. 한편으로는 기간이 더 길게 진행되어 더 많은 문제를 풀어볼 수 있다면 좋겠다는 생각도 들었지만, 본인의 Problem Solving 역량을 체크하는데 적정한 문제와 기간이였다고 생각합니다. https://level.goorm.io/l/challenge/goormthon-challenge 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제 입력 / 출력 풀이 과정 특정 칸에 알파벳 대문자를..
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다. 출력 각 테스트 케이스마다 A+B를 출력한다. 풀이 과정 테스트 케이스가 미리 주어지지 않고, 입력의 마지막에 0 두 개가 입력으로 들어온다. 0 두 개가 입력으로 들어오기 전까지 A + B 를 출력하면 되는 문제이다. C #include int main(void) { while(1) { int a, b; scanf("%d %d", &a, &b); if (a == 0 && b == 0) break; printf("%d\n",..
- Total
- Today
- Yesterday
- math
- Greedy
- Prefix-Sum
- sparse_table
- implementation
- bruteforcing
- ad_hoc
- DP
- knapsack
- backtracking
- 백준
- stack
- number_theory
- C
- Recursion
- Python
- kmp
- BOJ
- codeup
- Binary-Search
- segment-tree
- lca
- bitmask
- C++
- lazy-propagation
- PS
- BFS
- java
- string
- Sort
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
