본문 바로가기
코딩 테스트/백준

[백준] (Swift) 10818번: 최소, 최대

by Dev.Andy 2023. 3. 17.

📌 문제

10818번: 최소, 최대

 

 

📌 풀이

  1. 함수 readLine()를 통해 한 줄로 된 하나의 문자열로 두 번 입력 받는다.
  2. N은 Int로 변환한다.
  3. inputToArrayOfInt는 split()map{}을 통하여, (1) 공백으로 구분한 N개의 정수를 나누어, (2) Int의 요소로 하나의 배열에 각각 추가한다.
  4. Int(), readLine()은 옵셔널 타입이기에, 강제 언래핑으로 옵셔널을 해제한다.
  5. min(), max()로 각각 최솟값, 최댓값을 구하되, 이 역시 2번처럼 옵셔널 타입이기에 강제 언래핑을 한다.
  6. 최솟값, 최댓값을 화면 출력한다.

 

Swift에서 readLine()에 대한 내용은 따로 블로그를 작성했으니 아래를 참고하자.

 

 

[Swift] 백준에서 readLine() 메서드로 입력 받기

백준에서 Swift 언어로 문제를 풀 때, 입력을 어떻게 받아야 할까? Swift의 표준 입력 함수 readLine()에 대해 알아보자. 주어진 조건(띄어쓰기 여부 등)에 따라 입력 받은 문자열을 어떠한 자료형으로

andy-archive.tistory.com

 

 

Swift에서 min(), max()에 대한 내용은 아래를 참고하자.

 

 

📌 코드

// 문자열을 입력 받아 Int의 N으로 할당
let N = Int(readLine()!)!

// 공백으로 구분된 N개의 정수를 입력 받아 각각 하나의 배열에 Int의 요소로 추가
let inputToArrayOfInt = readLine()!.split(separator: " ").map {Int(String($0))!}

// 배열의 최솟값을 변수로 할당
var minOfArray = inputToArrayOfInt.min()!

// 배열의 최댓값을 변수로 할당
var maxOfArray = inputToArrayOfInt.max()!

// 최솟값과 최댓값을 공백으로 구분하여 각각 출력
print(minOfArray, maxOfArray)

 

 

📌 후기

내장 함수를 알고 이를 다룰 줄 안다면 간결하게 풀 수 있지만,

그렇지 않다면 입력값에서 일일이 반복문과 배열의 인덱스를 다루어 코드가 복잡해질 수 있는 문제였다.

댓글