본문 바로가기

Algorithm

백준 - 입출력과 사칙연산

728x90

단계별로 문제 풀이를 하고 있는데, 첫번째 단계인 입출력과 사칙연산을 끝냈음 언제 어려운 거 풀지 .. 

여기서 조금 기억해야겠다 싶은 것들만 추려서 간단하게 적어보려고 한당 ... 

 

세상 간단한 것도 .. 나는 어려우니까 .. 쒸익 쒸익 😡 

ㄴ 누가 뭐라고 함?

ㄴ 아니 그냥 내가 혼자 찔림

 

입력값

문제를 풀기 위해서는 입력값을 받아야 하는데 .. 그전에 프로그래머스로 풀어서 그런지 입력값을 어떻게 받는지 몰랐다 ..

swift에서는 readline()을 통해 입력값을 받을 수 있는데, 이렇게 받은 값을 따로 처리하지 않으면 옵셔널 string 형태로 타입이 결정된다. 

 

그래서 이 값들을 원하는 식으로 사용하기 위해서는 아래와 같은 몇가지 절차가 필요하다.

(처음에는 조금 어색할 수 있는데, 몇번 풀다보면 익숙해져서 그냥 아무생각없이 작성하게 된다.)

 

만약, 숫자를 입력 받아야 한다면?

  1. 옵셔널 해제
  2. Int로 변환 

과정을 거치면 된다.

 

프로젝트에서 코딩을 할 때는 강제언래핑을 지양하지만, 지금은 알고리즘이니까 .. ㅇㅉ

let n = Int(readLine()!)!

이렇게 Int형을 입력 받을 수 있다.

 

주로 띄어쓰기를 기준으로 숫자를 나눠서 입력을 받게 되는데,

이렇게 띄어쓰기를 기준으로 입력값을 구분하고 싶다면, 문자열의 메서드를 활용할 수 있다.

import Foundation

let input = readLine()!.components(separatedBy: " ").map { Int($0)! }
print(input)

Fountdation 프레임워크에 포함되어있는 components 메서드를 활용하여 띄어쓰기로 구분해주었다. 이렇게 쓰게 되면 띄어쓰기를 기준으로 입력받은 문자열이 "배열" 로 바로 return된다.

 

이렇게 입력 받은 값을 하나씩 접근하고 싶다면 인덱스로 input[0], input[1] ... 이렇게 접근할 수 있다.

 

출력값

출력은 그렇게 어려운 것은 없었는데 아직까지 특수문자를 출력하고 싶을 때 #와 "를 사용하면 된다.

swift5 이전버전에서 특수문자를 "\"를 사용해 나타내준 것과는 달리 swift5부터는 #와 "의 조합으로 특수문자 표현이 가능하다.

 

만약 여러 줄을 출력하고 싶다면 """를  사용하면 된다.

예를 들어 백준의 10171번 고양이와 같은 문제를 푼다고 하면 고양이 최고

let value = #"""
\    /\
 )  ( ')
(  /  )
 \(__)|
"""#

print(value)

이렇게 풀 수 있다.

 

 

아직까지 .. 는 이정도로 정리할 것 같은데 ..

고차함수를 좀 더 잘 활용할 수 있도록 쉬운 문제에서 최대한 많이 익숙해지려고 해야겠다 ... 아자자 ..