2022. 10. 5. 14:16ใํ๋ก๊ทธ๋๋จธ์ค-Swift
์ฑ๊ฒฉ์ ํ ๊ฒ์ฌํ๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/118666
๋์ ํ์ด
๋์ ๋๋ฆฌ๋ก ์นด์ดํธ๋ฅผ ์ ์ฅํ๊ณ ๊ฐ์์ ๋ฐ๋ผ ๋ฌธ์์ด์ ๋ง๋๋ ๋ฌธ์ ์ด๋ค.
์ฑ๊ฒฉ์ ํ์ ์งํ๋น ๋ ๊ฐ์ง ์ ํ ์ค ํ๋์ด๋ฏ๋ก ๊ฐ๊ฐ ์งํ์ ๋ํด ๋ฐฐ์ด์ ๋ง๋ ํ sortํ๋๋ฐ ํด์๊ฐ ๋์ ๋๋ฆฌ ์ ๊ทผ * sort ์๊ฐ๋ณต์ก๋๊ฐ ๊ฝค ๋ง์ด ๋์์ ๊ทธ๋ฐ์ง 20๊ฐ ํ ์คํธ์ผ์ด์ค ์ค 1๊ฐ๊ฐ ์คํจํ๋ค.
๊ทธ๋์ sortํ๋ ๊ฒ์ด ์๋ ๋จ์ ๋น๊ต๋ฅผ ํด์ ๋ฌธ์์ด์ ๋ง๋ค์๋ค.
import Foundation
func solution(_ survey:[String], _ choices:[Int]) -> String {
var dic = ["R": 0, "T": 0, "C": 0, "F": 0, "J": 0, "M": 0, "A": 0, "N": 0]
var idx = 0
for sur in survey {
switch choices[idx] {
case 1:
dic[String(sur[sur.startIndex])]! += 3
case 2:
dic[String(sur[sur.startIndex])]! += 2
case 3:
dic[String(sur[sur.startIndex])]! += 1
case 5:
dic[String(sur[sur.index(after: sur.startIndex)])]! += 1
case 6:
dic[String(sur[sur.index(after: sur.startIndex)])]! += 2
case 7:
dic[String(sur[sur.index(after: sur.startIndex)])]! += 3
default:
break
}
idx += 1
}
let RT = dic["R"]! >= dic["T"]! ? "R" : "T"
let CF = dic["C"]! >= dic["F"]! ? "C" : "F"
let JM = dic["J"]! >= dic["M"]! ? "J" : "M"
let AN = dic["A"]! >= dic["N"]! ? "A" : "N"
return RT+CF+JM+AN
}
๋ค๋ฅธ ์ฌ๋์ ํ์ด
String์ Array๋ก ๋ฐ๊พธ๋ฉด [Character]๋ก ๋๋๋ฐ ์ด๊ฒ์ ๊ฐ๊ณผํ๊ณ ๋ฌธ์์ด ์ธ๋ฑ์ค๋ก ํ์์๋ค.
๋ฌธ์ ์กฐ๊ฑด์ด 1, 2, 3์ผ๋ 3์ , 2์ , 1์ ์ ์ฃผ๊ณ 5, 6, 7์ผ๋ 1์ , 2์ , 3์ ์ฃผ๋ ๊ฒ์๋ณด๊ณ ์ค์ฌ์ธ 4๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ฐ 1์ , 2์ , 3์ ์ด ์ฐจ์ด๋๋ ๊ฒ์ ์๊ณ abs๋ก์ง์ ์ด์ฉํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ์ด์๋ค. (๋ switch๋ก ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํจ)
๋ง์ง๋ง์ผ๋ก ๋์ ๋๋ฆฌ์ ๊ฐ ๋๊ฐ๋ฅผ ๋น๊ตํ ๋๋ Sortํ ํ์์์ด ๊ฐ๋จํ ์กฐ๊ฑด์ ์ฃผ๊ณ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ๋ฐฉ๋ฒ๋ ํ์ ์์งํด๋์ผ๊ฒ ๋ค. (๊ฐ๋ค๋ฅผ ํํํจ์ผ๋ก์จ ์ฌ์ ์์ผ๋ก ํํํ ์ ์๊ฒ ๋จ)
import Foundation
func solution(_ survey:[String], _ choices:[Int]) -> String {
var dic: [Character: Int] = ["R": 0, "T": 0, "C": 0, "F": 0, "J": 0, "M": 0, "A": 0, "N": 0]
for i in 0..<survey.count {
let chars: [Character] = Array(survey[i])
if choices[i] < 4 {
dic[chars[0]]! += abs(4 - choices[i])
} else {
dic[chars[1]]! += abs(4 - choices[i])
}
}
let rt = dic["R"]! >= dic["T"]! ? "R" : "T"
let cf = dic["C"]! >= dic["F"]! ? "C" : "F"
let jm = dic["J"]! >= dic["M"]! ? "J" : "M"
let an = dic["A"]! >= dic["N"]! ? "A" : "N"
return rt+cf+jm+an
}
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.06 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ๋ฐ๊ธฐ(Swift) (0) | 2022.10.05 |
ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.04 |
ํคํจ๋ ๋๋ฅด๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (1) | 2022.10.03 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต(Swift) (0) | 2022.10.02 |