본문 바로가기
알고리즘 문제풀이

[Softeer] 개표 (Swift)

by SiO2whocode 2025. 2. 4.
728x90

https://softeer.ai/practice/7698

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

문자열?

점수 배열 입력 받아서 5점은 ++++로 표현, 남은 1점들은 | 로 표현하여 출력하는 문제

 

접근방법

우선 스위프트로 입력받아서 푸는 문제 오랜만이라 readLine하는 것 부터 찾아보고 풀었다 (https://didu-story.tistory.com/177 참고)

그리고 map과 forEach를 활용해서

점수를 5로 나눈 값과 그 나머지를 계산해서 ++++ 를 붙이고, | 를 붙여서 문자열로 저장한 뒤 배열에 넣고

배열을 출력하기

 

+ ++++ 마지막에 띄어쓰기 출력할 때 제외하고 출력해야하나 싶었는데 다행히 빈칸 뒤에 남겨도 통과 됐다

 

소스코드

// input
let T = Int(readLine()!)!
var inputs:[Int] = []
for _ in 0..<T {
    let input = Int(readLine()!)!
    inputs.append(input)
}

// process
var results:[String] = []
let five:String = "++++ "
let one:String = "|"

results = inputs.map { score in
            var str_score:String = ""
            let fiveCnt = score/5;
            let oneCnt = score%5;
            for _ in 0..<fiveCnt {
                str_score += (five) 
            }
            for _ in 0..<oneCnt {
                str_score += one
            }
            return str_score
}
results.forEach { print($0) }

 

스위프트 고차함수 쓰면 코드 간결해지는거 너무 좋음

728x90