Training 35

[C++] 2839 설탕 배달

나누기, 나머지 연산을 이용하는 문제 ​ 머리가 굳어버려 쩔쩔매던 중에 힌트 발견해서 단번에 성공. (감이 안 잡힐 때에는 저 힌트를 보자.) ​ 문제는 설탕 N kg을 배달하는데, 봉지의 갯수를 최소한으로 해야한다는 것. 결국 5kg 짜리 봉지를 가능한 한 많이 끼워넣고 시작해야한다. ​ 그럼 먼저, N(3 이상)을 5로 나눈 나머지를 구해보자. 3, 4, 0, 1, 2 가 반복된다. 그렇다는 얘기는 N%5의 결과에 따라 경우가 나뉜다는 뜻. 경우에 따라 구분하여, 각각의 규칙을 찾아본다. ​ if (N%5 == 3): 5로 나눴을 때의 나머지가 3인 숫자는 3, 8, 13, 18, 23, ... 3을 제외하고 8부터는 5x + 3의 꼴이다. ​ if (N%5 == 4): 4, 9, 14, 19, 24..

Training/BOJ 2020.07.18

[C++] 1008번 A/B

성공할 때 까지 무려 7번이나 틀린 문제. 별거 아니라고 얕봤다가... ㄷㄷ ​ 문제는 cout.precision() 이었다. 이게 무엇인지, 문제가 무엇을 요구하는지 잘못 이해한 채로 무작정 화만 내면서 제출하니까 안 됐던 것. ​ 문제의 출력 조건은 절대/상대 오차는 10^-9 까지 허용한다. 난 이걸보고 무작정 cout.precision(9); 을 쓰고 앉아있었다. 이건 문제를 잘못 이해한거다. ​ 오차를 10^-9 까지 허용한다라고 함은, 소수점 아래 9번째 자리까지는 무조건 출력해야함. 10번째 자리부터는 오차로 인식. ​ 그럼 cout.precision(int)는 무엇인가? std library 안의 ios_base Class 에 속한 함수다. (여기서 ios 란 그 사과사의 운영체제가 아닌 ..

Training/BOJ 2020.07.18
반응형