스위프트로 알고리즘 문제 풀이 푸는 법

SteadySlower·2022년 5월 2일
0

Coding Test

목록 보기
3/298

원래 저는 파이썬으로 알고리즘 공부를 해왔었습니다. 그런데 iOS를 공부하면서 Swift를 좀 더 연습해야겠다는 생각이 들었고 iOS 개발자로 취업을 하고 다시 알고리즘, 자료구조를 공부하면서 Swift로 알고리즘 문제를 매일 풀어보겠다는 결심을 했습니다.

Swift로 알고리즘 문제를 풀기 위해서는 몇가지 준비가 필요합니다. 함께 알아보시죠!

준비 하기

1. Command Line Tool 프로젝트 만들기

Xcode에서 알고리즘 문제를 풀기 위해서는 Command Line Tool로 프로젝트를 만들어야 합니다. 그 이유는 input을 받기 위해서 입니다.

2. Hello World 출력해보기

프로젝트를 처음 실행하면 아래 같은 화면이 나옵니다. “Hello World”를 프린트하는 코드를 작성하고 실행 버튼을 누르면 아래 터미널에 출력되는 것을 볼 수 있습니다.

3. 입력 받기

readline()이라는 함수를 통해서 입력을 받을 수 있습니다. readline이라는 함수는 자동적으로 개행문자를 삭제해주므로 실제 사용자가 입력한 값만 받아올 수 있습니다.

import Foundation

let input = readLine()

print(input)

위 코드를 실행해보도록 하겠습니다. 실행하면 아래 캡쳐와 같이 터미널이 입력을 기다립니다. 거기에 출력하고자 하는 문자열을 입력합니다.

입력 후에 return을 눌러 실행하면 아래와 같이 출력되게 됩니다.

다만 readline으로 읽어온 값은 optional이라는 점을 주의해야 합니다. 그래서 보통 알고리즘 문제풀이를 할 때는 !를 통해 강제 unwrapping한 값을 사용합니다. (물론 개발에서는 지양해야 할 방법입니다.😅)

import Foundation

let input = readLine()!

print(input)

한 문제 풀어보자!

백준에서 가장 쉬운 문제인 두 정수를 입력 받아서 더하는 문제를 풀어보겠습니다.

1000번: A+B

위 문제의 입력은 아래와 같이 들어옵니다.

1 2
	// 정수 (한칸 띄고) 정수

위와 같은 입력을 받기 위해서는

  1. 한 줄 전체를 문자열로 읽어온 다음에
  2. “1”, “2”를 각각의 문자열로 쪼개준 후에
  3. 해당 문자열을 Int로 캐스팅해서 계산해야 합니다.
import Foundation

let array = readLine()!.components(separatedBy: " ").map { Int($0)! }
print(array[0] + array[1])

그래서 위 코드에서는

  1. readline()!를 통해 한 줄을 통째로 읽어옵니다.
  2. .components()를 통해서 “ “를 기준으로 각각의 문자열을 array에 넣어 줍니다.
  3. 마지막으로 map을 통해서 array에 있는 문자열을 Int로 캐스팅 해줍니다.
  4. 마지막으로 print()문 안에서 더해서 출력합니다.
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글