MUKER_DEV with iOS

[swift] λ°±μ€€ - 2577번: 숫자의 개수 λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/BAEKJOON

[swift] λ°±μ€€ - 2577번: 숫자의 개수

MUKER 2023. 1. 31. 21:42
 

2577번: 숫자의 개수

첫째 쀄에 A, λ‘˜μ§Έ 쀄에 B, μ…‹μ§Έ 쀄에 Cκ°€ 주어진닀. A, B, CλŠ” λͺ¨λ‘ 100보닀 ν¬κ±°λ‚˜ κ°™κ³ , 1,000보닀 μž‘μ€ μžμ—°μˆ˜μ΄λ‹€.

www.acmicpc.net

 

문제 ν‘ΈλŠ” 데 μžˆμ–΄ 도움이 λ˜λ„λ‘ λ‚˜μ˜ 풀이와 κ°œμ„ λœ 풀이λ₯Ό μ˜¬λ¦½λ‹ˆλ‹€.
λ˜ν•œ 풀이 ν›„ λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό 보고 μ°Έκ³ ν• λ§Œν•œ 풀이도 μ˜¬λ¦½λ‹ˆλ‹€.

- λ¬Έμ œμ— 따라 λ‚˜μ˜ ν’€μ΄λ§Œ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
- ν•΄λ‹Ή 풀이듀은 풀이 쀑 ν•˜λ‚˜μΌ 뿐 μ΅œμ„ μ˜ ν’€μ΄λŠ” 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

 


 

문제 μ„€λͺ…

 

주어진 3개의 숫자λ₯Ό κ³±ν•˜μ—¬ λ‚˜μ˜¨ κ°’μ˜ 각각 μˆ«μžλ“€μ˜ 개수λ₯Ό κ΅¬ν•˜μ—¬λΌ.

 


 

λ‚˜μ˜ 풀이

var input = [0,0,0]
for i in 0..<3 { input[i] = Int(readLine()!)! }
var a = Array(String(input.reduce(1,*)))
var dictionary = [0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0]
for i in a {
    switch i {
    case "0": dictionary[0]! += 1
    case "1": dictionary[1]! += 1
    case "2": dictionary[2]! += 1
    case "3": dictionary[3]! += 1
    case "4": dictionary[4]! += 1
    case "5": dictionary[5]! += 1
    case "6": dictionary[6]! += 1
    case "7": dictionary[7]! += 1
    case "8": dictionary[8]! += 1
    case "9": dictionary[9]! += 1
    default: continue
    }
}
for i in dictionary.sorted(by: { $0.key < $1.key}) {
    print(i.value)
}

 

0~9κΉŒμ§€μ˜ λ”•μ…”λ„ˆλ¦¬λ₯Ό λ§Œλ“€μ–΄

ν•΄λ‹Ήν•˜λŠ” μˆ«μžμ— += 1을 ν•˜μ—¬

값을 κ΅¬ν–ˆμŠ΅λ‹ˆλ‹€.

 


 

μ°Έκ³ ν• λ§Œν•œ 풀이

let a = Int(readLine()!)!
let b = Int(readLine()!)!
let c = Int(readLine()!)!
var n = a * b * c
var characters = [Int](repeating: 0, count: 10)

while n > 0 {
    let x = n % 10
    characters[x] += 1
    n = n / 10
}

for x in characters {
    print(x)    
}

 

μƒκ°ν•΄λ³΄λ‹ˆ λ”•μ…”λ„ˆλ¦¬κΉŒμ§€ λ§Œλ“€κ±° 없이

λ°°μ—΄μ˜ 인덱슀λ₯Ό μ‚¬μš©ν•΄μ„œ 값을 κ΅¬ν–ˆμœΌλ©΄ λλ„€μš”.