mondegreen

[240212] 알고리즘 리부트 4일차 - 백준 13223 자바 본문

알고리즘 풀이 및 리뷰/[패캠] 핵심유형 20개로 한 번에 끝내는 알고리즘 코딩테스트 리뷰

[240212] 알고리즘 리부트 4일차 - 백준 13223 자바

앙갱 2024. 2. 12. 23:52
반응형

[Part1-Chapter01-Clip06]

 

- 백준 13223 소금폭탄

 

 

 

첫번째 풀이에서 놓친 점은 바로 로봇이 소금을 투하하는 데 걸리는 시간이 최대 24시간이 될 수 있다는 점이다. 즉, 현재시각과 컵을 이용할 시각이 같은 시각으로 주어질 수 있다는 것이다.(꼬박 1일이 지난 때)  이 부분을 조건문으로 추가하여 맞힐 수 있었다. 그런데 조건문이 난무해서 다른 방식이 없는지 추가로 고려해봐야겠다.

 

왼쪽은 시각을 입력받는 코드인데 6개의 변수를 선언하는 대신 2차원 배열로 입력 받았다. 여기서 split을 활용했지만 substring 매서드로도 가능하며, 각각의 string을 character 하나씩 떼어내서 앞자리에는 10을 곱하는 방식으로 추출할 수도 있다. 오른쪽은 풀이인데 아무래도 시, 분, 초 별로 별도로 조건문을 걸어서 복잡하기 그지없다.

 

그리고 강의를 듣고난 후 보다 간결한 풀이 방법을 찾았다. 이는 realmInstant의 형식과 유사했는데 어쨌든 모든 시간을 초 단위로 계산해버리는 방식이다. 코드 길이는 상당히 줄었고 메모리는 오히려 늘었지만 소요 시간은 동일한 것을 확인할 수 있었다. 1시간은 3,600초, 1분은 60초임을 활용하여 보다 간결하게 풀어냈다. 맨 아래 코드는 00:00:00 표현 규칙을 지키기 위함인데 2자리씩 정수로 출력하는데 빈자리는 0으로 채워줘라는 의미이다.

 

반응형