먼저 스위프트로 알고리즘 문제 풀기를 편히 할 수 있도록 새로운 프로젝트에서 Command Line Tool
파일을 하나 생성해주겠습니다.
알고리즘 ps를 하기 위해선 입력을 받을 수 있어야 하는데 스위프트에서 입력을 받기 위해선 readLine()
함수를 사용합니다.
readLine()
을 살펴보면 옵셔널 String을 반환하는 것에 주의하고 넘어가야 합니다.
입력을 보시면 1 2
입니다.
한 번에 2개의 숫자가 들어오고 숫자는 공백으로 구분되어 있습니다. 이것을 다시 2개의 문자열로 나누고 숫자로 변환해야 합니다.
이를 위해서 components(separatedBy:)
를 사용해야 합니다.
문자열 배열을 반환해주므로 readLine()
으로 받아온 옵셔널 스트링의 옵셔널을 벗기고 각 요소를 문제에 맞게 변환해야 합니다.
print
문을 보시면 Int
로 변환하는 과정에서 강제로 옵셔널을 벗겼습니다. 알고리즘에선 주로 입력값이 확실히 주어지는 경우가 많기 때문에 강제 언래핑을 자주 쓴다고 합니다.
이 부분은 str = readLine()
을 if let
으로 풀어준 것처럼 안전하게 풀어주어도 괜찮습니다.
또 components(separatedBy:)
외에도 split
과 compactMap($0.wholeNumberValue)
를 사용할 수 있습니다. 특히 compactMap($0.wholeNumberValue)
는 숫자만 반환하여 Int배열을 만들어주기 때문에 사용하기 좋습니다.
추가적으로 백준 알고리즘을 단계적으로 풀어나가기 위해 도움을 주는 사이트가 존재합니다.
위 사이트에서 순차적인 난이도로 문제를 풀어나갈 수 있습니다.
알고뤼숨,,, 미리 골드 따주세요 물어보게