MUKER_DEV with iOS

[swift] λ°±μ€€ - 2309번: 일곱 λ‚œμŸμ΄ λ³Έλ¬Έ

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

[swift] λ°±μ€€ - 2309번: 일곱 λ‚œμŸμ΄

MUKER 2023. 1. 19. 00:24

 

 

2309번: 일곱 λ‚œμŸμ΄

아홉 개의 쀄에 걸쳐 λ‚œμŸμ΄λ“€μ˜ ν‚€κ°€ 주어진닀. μ£Όμ–΄μ§€λŠ” ν‚€λŠ” 100을 λ„˜μ§€ μ•ŠλŠ” μžμ—°μˆ˜μ΄λ©°, 아홉 λ‚œμŸμ΄μ˜ ν‚€λŠ” λͺ¨λ‘ λ‹€λ₯΄λ©°, κ°€λŠ₯ν•œ 정닡이 μ—¬λŸ¬ 가지인 κ²½μš°μ—λŠ” μ•„λ¬΄κ±°λ‚˜ 좜λ ₯ν•œλ‹€.

www.acmicpc.net


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

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

 

λ‚˜μ˜ 풀이

var dwarf = [Int]()
for _ in 0..<9 { dwarf.append(Int(readLine()!)!) }
outerLoop: for i in 0..<9 {
    for j in i+1..<9 {
        if dwarf.reduce(0,+) - (dwarf[i] + dwarf[j]) == 100 {
            dwarf.remove(at: i)
            dwarf.remove(at: j-1)
            break outerLoop
        }
    }
}
for i in dwarf.sorted() { print(i) }

// μ‹œκ°„: 8ms

 

9개의 λ¬΄μ–Έκ°€μ—μ„œ 7개의 λ­‰μΉ˜λ‘œ λ‚˜μ˜€λŠ” 경우의 수λ₯Ό λŒλ¦¬λŠ” 것을

쀑첩 반볡문으둜 κ΅¬ν•˜κ²Œ λœλ‹€λ©΄

7개의 반볡이 μ€‘λ³΅λ©λ‹ˆλ‹€.

for i in 0..<9 {
    for ii in i..<9 {
        for iii in ii..<9 {
            for iiii in iii..<9 {
                ...
            }
        }
    }
}

λ‹€λ₯Έ 곡식이 λ§Žκ² μ§€λ§Œ

쀑첩 반볡문으둜 λ‚˜νƒ€λ‚Έλ‹€λ©΄ μ΄λŸ°μ‹μœΌλ‘œ λ‚˜μ˜€κ² μ£ ?

 

그럼 참이 λ‚˜μ˜€λŠ” λ‚œμŸμ΄ 7마리λ₯Ό λŒλ¦¬λŠ”κ±°λ³΄λ‹€(λ‚œμŸμ΄λŠ” λ§ˆλ¦¬κ°€ λ§žλ‚˜?)

κ±°μ§“μ˜ λ‚œμŸμ΄ 2마리λ₯Ό κ΅¬ν•˜λŠ”κ²Œ 훨씬 쉽겠죠!

 

2번의 쀑첩 for문으둜 거짓 λ‚œμŸμ΄λ₯Ό κ΅¬ν•΄μ„œ

λ‚œμŸμ΄ λ¬΄λ¦¬μ—μ„œ μ§€μ›Œλ²„λ ΈμŠ΅λ‹ˆλ‹€^^