Old_SWIFT(221012)/알고리즘이야기

백준에서 코딩테스트 해보기

KataRN 2022. 2. 20. 20:04
반응형

안녕하세요. KataRN입니다.

 

오늘은 백준으로 코딩테스트 해보는법에 대해 알아보겠습니다.

프로그래머스에서는 Playground로 가능했었는데 백준에서 해보려니 안되더라구요...

 

백준은 Command Line Tools 라는 것을 이용해서 데이터를 입력받고 출력하는 방식을 이용해야합니다.

 

처음 접하는 사람은 이해하기 힘들지만 천천히 따라해보면 쉽습니다.

 

오늘도 차례차례 해보도록 합시다.

 

1. 제일 중요한 단계입니다. Xcode를 실행합니다.

 

2. Create a new Xcode project로 새로운 프로젝트를 만듭니다. 그리고 macOS에 있는 Command Line Tool을 선택합니다.

 - Swift언어로 만들어줍시다!

3. 자 이제 준비는 다 되었습니다. 이걸 어떻게 쓰는지 추가 설명을 드리겠습니다.

백준문제 1026번을 한번 보시죠. (출처 : https://www.acmicpc.net/problem/1026)

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net

보시면 예제 입력에 저렇게 3줄이 있죠? 저걸 넣었을때 예제 출력 1줄이 나오도록 만들어야합니다.

우선 첫째줄 5가 입력되고 18이 출력되도록 해보겠습니다.(문제의 풀이를 위해 하는것이 아니니까 단순 입출력만 되도록 하겠습니다.)

 

var input = readLine()

중요한 핵심 코드는 위의 readLine()입니다.

1개가 있으면 한줄을 입력하고 2개가있으면 두줄을 입력하게되어있죠.

 

아래처럼 코드를 작성하고 실행을 시킵니다. 그럼 아래에 실행착이 나오고 거기에 저희가 입력하기로한 5를 쓰고 엔터를 누르면 readLine()이 5를 읽어서 변수 input는 5가 됩니다. 그리고 그아래 print(18)를 통해 18이 출력됩니다.

 

이제 다음 단계로 넘어가보도록하죠.

단순하게 2번째 줄의 데이터를 입력받아 사용해보도록 하죠.

 

이뿐만아니라 여러줄일 경우 for문을 이용하는 방법도 있겠죠?


그런데 몇줄나올지 모를 경우는 어떡할까요?

for문은 5줄 10줄 등 정해진만큼 돌리는건데....

 

그럴때는 아래처럼!(단! 제출에 문제는 업으나 콘솔엔 안찍히네요 ㅜㅜ)

while let input = readLine() {
	print(input)
}

 

 

백준에서 문제를 풀 경우 시간초과 관련 이슈들이 있습니다.(적절한 알고리즘을 사용해도 시간초과가 나는 경우가 있습니다.)

자세한 내용은 아래 글을 참고해주세요~

 

https://katarnios.tistory.com/39

 

백준 시간초과 해결방법

안녕하세요. KataRN입니다. 오늘은 백준 시간초과 해결방법에 대해 알려드리려고합니다. 우선 이 방법은 알고리즘을 사용했음에도 시간초과가 되는 현상의 경우에 사용하시기 바랍니다. 알고리

katarnios.tistory.com

 

오늘도 긴글 읽어주셔서 감사합니다.

반응형