목록코틀린 (4)
프로젝트 모찌
백준코딩 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를 더해가는 대신 고정비용을 이윤으로 나누어버리기로 했다. 제품의 가격이 생산비용보다 크다면 항상 이윤이 발생할 것이고 그 이윤이 고정..
자바만 죽어라 연습하다가 먹고 살려면 다른 언어도 좀 배워놔야 겠다 싶어서 그래도 자바랑 가장 비슷한 코틀린을 공부해보기로 했다. 직접해보니 정말 자바랑 매우 유사하거나 심지어는 더 간결한 코드에 놀랐던 것 같다. 코딩 연습에는 아직까지는 백준코딩 문제 풀기가 가장 좋다고 느껴서 한번 풀어보았다, 5622번 다이얼 문제는 옛날 전화기 다이얼 사용시 걸리는 시간을 계산하는 문제였다. 다이얼에 나와있는 알파벳 대문자로 외워 번호를 입력하는 방식을 사용하였을 때 번호를 다 입력할 때까지 걸리는 시간을 구하면 되는 문제. 숫자 1을 입력하는데 걸리는 시간은 2초이며, 숫자가 1개씩 늘어날 때마다 1초씩 더 필요로 한다. 문제안에 사진도 같이 제공하였는데 처음에는 사진은 안보고 숫자 1개당 문자 3개씩 할당되어 ..