본문 바로가기

분류 전체보기

(386)
[c++] 백준 2869 달팽이는 올라가고 싶다 백준 단계별로 풀어보기 [기본수학 1] 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net [풀이] 처음에는 반복식을 이용해서 풀이했다. 입력범위가 커서 시간초과가 걸린다. O(1)의 상수시간 안에 풀어야 하므로 반복문을 이용하지 않고 다시 풀었다. 달팽이는 하루에 a-b 미터 씩 총 v 미터를 올라간다. 그런데 마지막 날에는 b미터만큼 미끄러지지 않으므로 총 v-b미터를 올라간 것과 같다. (v-b) / (a-b) 가 나누어 떨어지지 않으면 하루를 더 가야하므로 몫 + 1이다. [..
[c++] 백준 2292 벌집 백준 단계별로 풀어보기 [기본수학 1] 벌집 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net [풀이] 1을 level 0이라고 했을 때, level이 증가할 때 마다 6*level만큼 육각형 벌집이 증가한다. 각 level+1이 지나가는 방의 개수이므로 주어진 숫자 N에 대해서 몇 level에 속하는지를 계산하면 된다. n이 1 + 6(1+2+3...+level)이랑 같거나 작아지는 level을 찾는다. [코드] #include int main(void..