[Swift] 2022 KAKAO TECH INTERNSHIP ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ
Problem
ํ ๋์ ๋ฆฟ์ฝ๋๋ง ํ๋ค๊ฐ ์ ๋ง ์ค๋๋ง์ ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ๋ค์ด๊ฐ๋๋ ์๋ก์ด ์นด์นด์ค ๋ฌธ์ ๊ฐ ์์ด์ ํ๋ฒ ํ์ด๋ดค๋ค.
Solution
1. ์ฃผ์ด์ง ์ฑ๊ฒฉ ์ํ๋ฒณ์ ๋์ ๋๋ฆฌ๋ก ๋ง๋ค์ด ์ค๋ค.
var charDic: [Character:Int] = ["R":0,"T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0]
2. survey๋ฅผ ์ํํ๋ฉฐ choice์ ๊ฐ์ ๋ง๊ฒ ์ฒซ ๋ฒ์งธ ๋๋ ๋ ๋ฒ์งธ ์บ๋ฆญํฐ์ ๊ฐ์ ๋ํด์ค๋ค.
๋ง์ฝ choices์ i๋ฒ์งธ ๊ฐ์ด 4๋ณด๋ค ์๋ค๋ฉด ์ฒซ ๋ฒ์งธ ๊ธ์์ 4์์ ํด๋น ๊ฐ์ ๋บ ์ ๋๊ฐ์ ๋ํด์ค๋ค.
4๋ณด๋ค ํฌ๋ค๋ฉด ๋ ๋ฒ์งธ ๊ธ์์ 4์์ ํด๋น ๊ฐ์ ๋บ ์ ๋๊ฐ์ ๋ํด์ค๋ค.
for i in 0..<survey.count {
let chars: [Character] = Array(survey[i])
if choices[i] < 4 {
charDic[chars[0]]! += abs(4 - choices[i])
} else {
charDic[chars[1]]! += abs(4 - choices[i])
}
}
3. ๋์ ๋๋ฆฌ์ ๊ฐ์ ๋ง๊ฒ ์ฑ๊ฒฉ ์ ํ์ ๋ง๋ค์ด์ค ๋ฐํํ๋ค.
let RT = charDic["R"]! >= charDic["T"]! ? "R" : "T"
let CF = charDic["C"]! >= charDic["F"]! ? "C" : "F"
let JM = charDic["J"]! >= charDic["M"]! ? "J" : "M"
let AN = charDic["A"]! >= charDic["N"]! ? "A" : "N"
return RT + CF + JM + AN
Result
Source Code
func solution(_ survey:[String], _ choices:[Int]) -> String {
var charDic: [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 {
charDic[chars[0]]! += abs(4 - choices[i])
} else {
charDic[chars[1]]! += abs(4 - choices[i])
}
}
let RT = charDic["R"]! >= charDic["T"]! ? "R" : "T"
let CF = charDic["C"]! >= charDic["F"]! ? "C" : "F"
let JM = charDic["J"]! >= charDic["M"]! ? "J" : "M"
let AN = charDic["A"]! >= charDic["N"]! ? "A" : "N"
return RT + CF + JM + AN
}
P.S
ํด๋น ๋ฌธ์ ๋ 1๋จ๊ณ ์๋๋ฐ ์ข ํค๋งจ ๋ถ๋ถ์ด ์์๋ค.
1~7๊น์ง ์ ์๊ฐ ์ฃผ์ด์ง๋ฏ๋ก ๋ 1~3์ด๋ผ๋ฉด 8์์ ๋บ ๊ฐ์ ๋ํ๊ณ 5~7์ด๋ฉด ๊ทธ๋ฅ ๋ํ๋ ค๊ณ ํ๋ค.
๊ทผ๋ฐ 65์ ์ผ๋ก ํต๊ณผํ์ง ๋ชปํ๋ค.
๋ด ์๊ฐ์ 4 - 1 = 3, 4 - 2 = 2, 4 - 3 = 1, 4 - 4 = 0,4 - 5 = 1, 4 - 6 = 2, 4 - 7 = 3 => 1,2,3,1,2,3
8 - 1 = 7, 8 - 2 = 6, 8 - 3 = 5, 5, 6 , 7 => 5,6,7,5,6,7 ์ด๋ฉด ๋๊ฐ์ด ์ ๋ต์ด ๋์์ผ ํ์ง ์๋?..
์ดํด๊ฐ ์๋๋ค...
ํน์ ์ ํ๋ ธ๋์ง ์์๋ ๋ถ์ ๋๊ธ๋ก ์ข ์๋ ค์ฃผ์ญ์ผ..ใ