문제 출처:https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿 www.acmicpc.net 문제 분석 예제를 봅시다: N = 2, M = 2 N × M = 4, N + M = 4 답: 3 N = 1, M = 1 N × M = 1, N + M = 2 답: 0 N × 1로 이루어진 초콜릿을 자른다면 총 몇번이 걸릴까요? N-1번 입니다. 그렇다면 N × M으로 이루어진 초콜릿은? N × M -1이지 않을까요? 이것을 알고 문제를 접근하면 큰 문제없이 풀 수 있습니다 코드는 ..
문제 출처:https://www.acmicpc.net/problem/17211 17211번: 좋은 날 싫은 날 지은이가 건국한 나라인 유애나에 살고 있는 재현이는 너무 단순한 나머지 매일이 기분이 좋은 날, 기분이 싫은 날 두가지로 나누어진다. 어느 날 지은이는 재현이에 대한 놀라운 사실을 발 www.acmicpc.net 문제 분석 이 문제를 풀기 위해서 먼가 재귀적으로 접근해야 할 것 같다는 느낌이 들었습니다. 좋은 날을 0으로 싫은 날을 1로 두고 예제를 살펴보면, 00[좋은날 -> 좋은날] 0.70 01[좋은날 -> 싫은날] 0.30 10[싫은날 -> 좋은날] 0.50 11[싫은날 -> 싫은날] 0.50 처음에 1[싫은날]로 시작하여 각각 좋은 날과 싫은 날의 확률을 구해야합니다. 좋은날[110 +..
문제 출처:https://www.acmicpc.net/problem/17210 17210번: 문문문 첫째 줄에 총 문의 개수 N(2 ≤ N ≤ 2,500,000,000)이 주어진다. 둘째 줄에는 유신이가 첫 번째 문을 통과할 때 문을 연 방법이 주어진다. 밀어서 여는 법은 숫자 0, 당겨서 여는 법은 숫자 1로 표기된 www.acmicpc.net 문제 분석 문제를 처음 본 순간 2와 3의 배수에는 각각 같은 방식으로 문을 열수 있다고 한 부분이 이상했습니다. 2의 배수 2, 4, 6, 8... 과 3, 6, 9 ... 라고 할 때 2와 3은 항상 다른 값이 올 텐데 곂치는 6이 온다면 둘 중 하나의 조건에는 성립하지 못한다는 것을 캐치했습니다. 따라서 Love is open door라는 문구를 출력하는 ..
문제 출처:https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 저는 처음에 이 문제를 보고 long long 타입으로 주고 그냥 더하면 되는거 아닌가 싶었습니다. 그런데 다시보니 input size가 ${10^100000}$이더군요.. 그래서 숫자 형태의 데이터 타입으로는 접근할 수 없겠다고 생각하여 string으로 문제를 풀었습니다. 각 숫자마다 문자열의 길이가 다르기때문에 reverse함수를 사용해서 뒤집어주었고, loop를 사용하여 더해서 10이상인 경우 올림을 해주었습니다. 코드는 다음과 같습니다: #include #include #include u..
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/42883?language=cpp 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr char 타입의 '0'은 ASCII Code로 표현하면 48입니다. '9'까지 이어져 있으며 [-'0']을 해주거나 [-48]을 해주면 int 타입과 동일하게 활용할 수 있습니다. 코드는 다음과 같습니다: #include using namespace std; string solution(string number, int k) { string answer = ""; int n = number.length() - k; for(int i = 0,index = -1; i < n; i++){ char max = ..