https://www.acmicpc.net/problem/3649
투 포인터 문제다. 예전에 런타임 에러를 마주하고 해결하지 못해 포기했다가 최근에 다시 봐서 해결한 문제.
풀이
입력된 레고를 길이 순으로 정렬한 뒤 처음과 끝에서 탐색하면서 범위를 좁히면 된다. 탐색 도중 조건이 맞으면 바로 결과를 출력. 대신 테스트 케이스의 제한이 안 적혀있어 결과물을 모아서 한 번에 출력했다. 스위프트의 print() 메서드가 다른 언어에 비해 속도가 느리기 때문에 출력 양이 많은 경우에는 이런 식으로 해결하는 경우가 많다.
정답 코드
주석처리 부분이 런타임에러 코드의 수정 전 부분이다. 무한 입력을 받기 위해 while let 문을 사용했는데, 마지막 입력없이 끝나는 부분에서 공백 문자열에 대해 정수형 변환이 일어나 런타임 에러가 일어나지 않았나 생각해본다. xcode에서는 아무 문제없이 빌드되길래 다른 케이스에서 인덱스 오류인 줄 알고 여러 번 삽질했다..
'Problem Solving > BOJ' 카테고리의 다른 글
[12851] 숨바꼭질 2 (0) | 2022.11.30 |
---|---|
[2096] 내려가기 (0) | 2022.11.29 |
[1916] 최소비용 구하기 (0) | 2022.11.25 |
[1105] 팔 (0) | 2022.11.24 |
[12015] 가장 긴 증가하는 부분 수열2 (0) | 2022.11.23 |