https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 6과 9를 하나의 숫자로 보는 것이 핵심이다. #include #include using namespace std; int main() { string input; cin >> input; int length = input.length(); char arr[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; int result[10] = { 0, }; for (int i = 0; i < length; i++) { for (int j = 0; j ..
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B > a >> b >> v; int day = 0; int temp = 0; while (true) { temp = temp + a; if (temp >= v) { day++; break; } else { temp = temp - b; day++; } } cout > a >> b >> v; i..
이번 주제는 간단하다. 지금까지의 포스트들을 잘 이해했다면, 쉬움. 현재 클래스에서 print()함수 구현이 m_value로만 되어있어서, template의 자료형이 포인터인 경우 주소값이 나온다. 우린 포인터에서는 좀 특수화 해주고 싶다면? 기존에 하던 것 처럼 특수화를 해주면 된다. 이건 쉬워서 패스... template T를 적용한 A라는 클래스의 멤버함수인 doSomething()에 template TT를 또 적용시킨 경우다. 이 template는 doSomething()함수에만 적용되는 범위를 가진다. 템플릿을 헷갈리지 말아야할 부분?이라면 T를 명시해줄 때, 로 명시해줘야하는지, 아니면 단순히 그냥 인자로 명시가 되기 때문에 굳이 로 명시를 안해도 되는지는 충분히 고민해봐야함.
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 사고과정) 우선 소수라는 개념 자체가 '1과 자기 자신만으로 나뉘어지는 수' 라고 학교 다닐 때 배웠다. 그렇다면 그 이외의 숫자들로 나뉘어지면, 그건 소수가 아닐 것이다. 를 활용했다. 예외사항으로 1은 소수가 아니고. #include using namespace std; int main() { int N; cin >> N; int wrong = 0; for (int i = 0; i > num; if (num == 1..
https://www.acmicpc.net/problem/1173 1173번: 운동 첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다. www.acmicpc.net 사고과정) 결국 고려해야할 지점은 두 가지다 1) 운동을 할 시, 최대값(경계값)을 초과할 수 없다. 초과하면 무조건 휴식을 해서 감소시켜야한다. 2) 휴식을 통한 감소값이 너무 크면, 최소값(경계값) 아래로 내려갈 수 없게 설정해줘야한다. 즉, 심박수는 최소값 아래로 내려갈 수 없게 설정해줘야한다. #include using namespace std; int main() { int N, m, M, T, R; cin >> N >> m >> M >> T >> R; int exercise = 0; int rest = 0; int sum =..
https://www.acmicpc.net/problem/2506 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net #include using namespace std; int main() { int N; cin >> N; int* arr = new int[N]; for (int i = 0; i > arr[i]; int count = 0; int sum = 0; for (int i = 0; i < N; i++) { if (arr[i] == 1) { sum = sum + (count + 1)..
https://www.acmicpc.net/problem/1246 1246번: 온라인 판매 첫째 줄에 정수 N(1 ≤ N ≤ 1,000)과 M(1 ≤ M ≤ 1,000)이 입력된다. 둘째 줄부터 M+1번째 줄까지 i+1번째 줄에는 Pi(1 ≤ Pi ≤ 1,000,000)가 입력된다. www.acmicpc.net 사고과정) (가격금액 * 구매 가능한 사람수 )가 가장 큰 값을 찾으면 된다. 입력받은 가격들 중 가장 큰 값을 max_element로 찾고, i = 1 ~ max_element까지 반복하면서 구매가능한 사람수를 조건문으로 걸고 곱한 합을 비교하면 된다. 예외사항으로, 사람수가 계란수보다 많으면, 예를 들어 가능한 사람수는 5명이라 count가 5는 되지만, 계란 수는 4라 오류가 난다. 그렇기 ..