[goorm-단어의 개수 세기] swift 공백단위로 구분하여 입력받기 (입력 배열로 받기)

syeony·2024년 6월 30일
0

swift

목록 보기
2/12

goorm으로 풀게 된 이유

문제풀이보다 먼저, 백준으로 공부하다가 goorm으로 넘어온 이유는 네이버부스트캠프 1차 테스트를 goorm환경에서 진행했기 때문이다. 덕분에 백준으로만 문제를 풀어온 나에게는 함수틀, 입력, 출력까지는 짜져있는 테스트환경에 조금 놀랐다. 그래서 그런지 입력받기부터 막히지 않았던 것 같다.

처음 goorm을 보고 단계1부터 5까지 나눠져있어서 좋았다.
그리고 실행환경이 문제 옆에 바로 주어져있어서 따로 swift를 위한 환경설정을 하지 않아도 되어서 맥이 없는 사람들에게 좋은 것 같다.

나는 단계1부터 차근히 풀어보려고 한다.
이 문제는 그 중 단계 1 첫번째 문제이다.
뭐든지 시작이 제일 어렵다고 하지 않던가!
비록 swift문법을 완벽히 알지 못하는 상태이지만 풀면서 공부해나가려 한다.

틀잡기

처음에 이 문제를 보고 든 생각.
아, input을 1차원 배열로 받아서 sum변수를 만들어 거기에 input.count만큼 1씩 더해주면 되겠다 생각했다.
그래서 맨 처음에 짠 코드는 for문이 들어갔다.
그런데 for문이 들어가니 테스트케이스 중 하나가 런타임에러가 났다.

문법

문자열 입력받기.
아무리 문법을 모른다고 하지만 여기서부터 막힐줄은 몰랐다...
바로 검색
먼저 swift에서 입력문법인 readLine()은 String타입으로밖에 못 받는다고 한다.
따라서 공백단위의 문자열을 입력받아 배열로 저장하기 위해서는 Int형으로 변환해주어야한다.

let arr_Int = readLine()!.split(" ").map{Int($0)!}

다음으로 문자열 배열로 입력받기.

let arr_String = readLine()!.split{$0 == " "}

생각보다 많이 헷갈린다...

정답코드

for문은 런타임에러가 나서 그냥 input.count로 받아주니 해결.

let input = readLine()!.split {$0 == " "}
print(input.count)
profile
모바일 어플리케이션, cross platform과 iOS에 관심이 많은 개발자 오승연입니다

0개의 댓글