프로젝트 모찌
백준코딩 2869번 '달팽이는 올라가고 싶다' 문제는 정수 달팽이의 하루 당 이동 거리가 주어지고 목적지까지의 거리가 주어졌을때 목적지까지 가는데 얼마나 걸리는가를 구하는 문제이다. 달팽이는 낮에 A미터 올라갈 수 있고, 밤에 잠을 자는 동안 B미터 미끄러진다. 그리고 정상에 도달한 후에는 미끄러지지 않는다. 입력은 첫째줄에 정수 A, B, V 가 공백으로 구분되어서 주어진다. 문제 설명만 읽어보았을때는 크게 어려울 것이라고 느끼지 않았다. 달팽이는 하루에 무조건 (A-B)미터 이동하고 마지막 날에는 미끄러지지 않고 올라만 가기 때문에 while 문을 통해서 목적지인 V 에서 하루 당 이동거리인 (A-B)를 빼가는 방식으로 계산하려고 하였다. 하지만 역시나 정답률 26프로짜리 문제는 이유가 있는 법, 제..
2292번 벌집문제는 흔히 수학에서의 최단거리 문제와 비슷했다. 벌집 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 할당, 중앙방 1부터 목적지방 N까지 최소개수의 방을 지나서 갈때 지나가는 방의 갯수를 묻는 문제다. 이 문제는 엄밀히 말하면 수학에서 수열(Sequence)와 관련이 있다. 벌집 방의 번호 할당 방식이 중앙방 1 부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 규칙인데, 이것은 엄밀히 말하면 계차수열이라고 볼 수 있다. 벌집은 육각형이기에 중앙방을 기준으로 이웃하는 방들을 한 껍질(Shell)로 묶어보면 각 껍질(Shell)의 마지막 방 번호는 1 - 7 - 19 - 37 - 61 ...... 이렇게 진행된다. 이 숫자들의 공차는 6 - 12 - 1..
백준코딩 1712번 손익분기점 문제는 말 그대로 비용과 가격이 주어졌을때 손익분기점에 도달하는 시점의 판매량을 구하는 문제였다. 처음에는 FixedCost, VariableCost, productPrice 라는 3개의 변수의 각각의 값을 담아 놓고 while문을 통해 손익분기점에 도달할 때까지 VariableCost와 productPrice를 더해가며 비교하는 방식으로 접근하려고 헀다. 그러나 이렇게 코드를 구성하였더니 잘못된 결과를 출력하거나 런타임에러, 나아가 시간초과까지 나왔다. 그래서 접근방식을 약간 변경하였다. 계속 variableCost와 productPrice를 더해가는 대신 고정비용을 이윤으로 나누어버리기로 했다. 제품의 가격이 생산비용보다 크다면 항상 이윤이 발생할 것이고 그 이윤이 고정..