문제 브실이는 하루라도 빨리 대회 출제 자격을 얻기 위해서 1000문제 해결을 목표로 매일 문제를 풀고 있다. 그러다 보니 다른 사람들의 푼 문제 수에 관심이 많다. 사람들은 “저는 총 1000문제 이상 해결하려면 하루에 5문제씩 최소 128일은 더 풀어야 해요”와 같이 자신이 몇 문제를 풀었는지 설명한다. 브실이는 이 말을 들을 때마다 상대방이 현재까지 몇 문제를 풀었는지 궁금해서 참을 수 없었다. 브실이를 도와 상대방이 푼 문제 수의 최솟값과 최댓값을 구해보자. 입력 첫 번째 줄에 양의 정수 N, M, K가 공백으로 구분되어 주어진다. (1 ≤ N, M, K ≤ 2000) 이는 “저는 총 N문제 이상 해결하려면 하루에 M문제씩 최소 K일은 더 풀어야 해요”라는 의미이다. K일이 지나기 전에 N문제를 ..
문제 어떤 정수 A가 있으면 그 수를 A = a1 * a2 * a3 * a4 ... * an으로 했을 때 A' = a1 + a2 + a3 ... + an이 성립하면 "A는 A'으로 변할 수 있다"라고 한다. (ai는 정수) 만약 A'이 A"으로 변할 수 있으면 "A는 A"으로 변할 수 있다"라고 한다. 이때 A와 B가 주어지면 A는 B로 변할 수 있는지 판별하시오. 입력 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다. 출력 각각의 테스트 케이스마다 한 줄에 변할 수 있으면 yes, 아니면 no를 출력한다. 풀이 과정 A -> B로 바꾸기 위해서는, 1 과 -1 을 적절히 사용하면 된다. Ex) ..
문제 당신은 SASA 연못에서 알파벳 S 모양의 블록 N개와 알파벳 A 모양의 블록 M개를 건졌다. 태영이는 연못에서 건진 블록을 이용해 학교에 전시할 SASA 모형을 최대한 많이 만들려고 한다. SASA 모형 1개를 만들기 위해서는, 알파벳 S 모양의 블록 2개와 알파벳 A 모양의 블록 2개가 필요하다. 태영이가 만들 수 있는 SASA 모형 개수의 최댓값을 구하라. 입력 첫째 줄에 알파벳 S 모양의 블록의 개수 N과 알파벳 A 모양의 블록의 개수 M이 공백으로 구분되어 주어진다. 출력 태영이가 만들 수 있는 SASA 모형 개수의 최댓값을 출력한다. 풀이 과정 아무리 S 모양 블록을 많이 가진다 한들, A 모양 블록이 부족하면 SASA 모형을 A 모양 블록 개수에 맞게 만들 수 밖에 없다. 아무리 A 모..
문제 두 정수 A와 B가 주어졌을 때, 두 정수 사이에 있는 수의 합을 구하는 프로그램을 작성하시오. 사이에 있는 수들은 A와 B도 포함한다. 입력 첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) 출력 첫째 줄에 답을 출력한다. (-2,147,483,648 ≤ 답 ≤ 2,147,483,647) 풀이 과정 A, B의 제한이 넓고, 시간 제한도 0.25 초라서 단순 브루트포스(A부터 B까지 합을 반복문으로 하나씩 더하기) 로는 해결할 수 없다. 따라서 이를 A와 B 사이에 있는 수의 합을 한번에 구할 수 있을 수식이 필요하다. 필자는 가우스 공식을 활용하여, A < B 라고 할 때, (1부터 B까지의 합) - (1부터 (A-1)까지의 합) 으로..
문제 지훈이는 Sort 마스터다. 그래서 어떠한 N개의 원소를 가진 배열이 들어오더라도 암산으로 오름차순 정렬을 할 수 있다고 한다. 의심 많은 보성이는 지훈이를 테스트해 보기로 마음먹었다. 하지만 모든 원소를 일일이 다 확인하는 것은 너무 귀찮은 일이라 생각한 보성이는 정렬된 배열의 마지막 원소만 맞는지 확인해 보기로 했다. 보성이를 위하여 마지막 원소를 알려주는 프로그램을 만들어주자. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 N개의 정수 A[1], A[2], ... , A[N]이 주어진다. (0 ≤ A[i] ≤ 10^9) 출력 첫째 줄에 정렬된 배열 A의 마지막 원소를 출력한다. 풀이 과정 오름차순으로 정렬된 배열의 마지막 값 : 배열의 최댓값이다. 최댓값을 찾아서..
문제 나는 7번의 수능 끝에 한양대학교 23학번으로 입학하게 된 김한양이다. 한양대학교 추가합격 전화를 받고 기뻐서 친구들과 술을 마시며 길을 걷다가 언덕 아래로 굴러 떨어지고 말았다. 깨어나보니 2주가 흘러 있었고, 수강신청까지는 15분밖에 남지 않았다. 수강신청 홈페이지에 들어갔지만 부상의 후유증으로 학번이 기억나지 않았다. 한양대학교 공지사항을 확인해보니 학번을 생성하는 방법에 대한 안내문이 있었다. 한양대학교는 Engine of Korea라고 불리는 만큼 학번을 만들 때 특수한 공식을 사용한다. 기본적으로 한양대학교 학번을 알아내기 위해서는 정확한 수능 점수(표준 점수)를 알고 있어야 한다. 국어 점수가 영어 점수보다 높다면, 두 점수의 차에 인문관의 건물 번호 508을 곱해준다. 아니라면, 두 ..
문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 풀이 과정 경계선까지 가는 최소 거리는 다음 4가지를 비교해야 한다. 가로 기준으로, x 에서 0까지 가는게 빠른지 x 에서 w 까지 가는게 빠른지 세로 기준으로, y 에서 0까지 가는게 빠른지 y 에서 h 까지 가는게 빠른지 이 중 최솟값을 출력한다. C #include int main(void) { int x, y, w, h; scanf("%d %d %d %d", &x, &y, &w, &h..
문제 2020 INPC는 IGRUS 뉴비들을 위해 열리는 대회입니다. 하지만 영수 할아버지나 인용 할아버지와 같이 14학번이지만 마음만은 뉴비인 어르신들 때문에 대회장이 TLE들의 파티가 되자 뉴비의 기준을 정의하기로 하였습니다. INPC 운영진들은 고심 끝에 뉴비를 1학년 혹은 2학년인 학생으로 정의 내렸고 뉴비를 정의하는 김에 올드비와 TLE도 정의 내리기로 하였습니다. 올드비는 N학년 이하이면서 뉴비가 아닌 학생으로 정의하기로 하였고 TLE은 뉴비도 아니고 올드비도 아닌 학생으로 정의하였습니다. N과 M이 주어졌을 때, M학년이 뉴비인지 올드비인지 TLE인지 구별해 주세요. 입력 양의 정수 N과 M이 공백을 사이에 두고 주어집니다. 출력 M학년이 뉴비라면 NEWBIE!를, 올드비라면 OLDBIE!를..
- Total
- Today
- Yesterday
- java
- ad_hoc
- Prefix-Sum
- backtracking
- C
- codeup
- BFS
- DP
- BOJ
- lca
- string
- 백준
- math
- Greedy
- Sort
- Python
- bruteforcing
- segment-tree
- kmp
- PS
- bitmask
- C++
- Binary-Search
- sparse_table
- stack
- Recursion
- lazy-propagation
- implementation
- knapsack
- number_theory
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
