2022. 11. 15. 16:44ใAlgorithm
๋ฐฑ์ค - ๋น๋ฐํธ์(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/22251
๋์ ํ์ด
๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์ด๋ป๊ฒ ํ์ด์ผํ ์ง ๊ฐ์ด ์ ์์๋ค.
๋ฑ ๋ฌธ์ ๋ง ์ดํดํ ๋๋..
๊ทธ๋์ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ฉด์ ๊ฐ์ ์ฐพ์๋ค.
๋จผ์ K๊ฐ 6๊น์ง๊ธฐ ๋๋ฌธ์ N์ด ํํ๋ ์ ์๋ ์๋ 999,999๊น์ง์ด๋ค. ์ฆ NlogN๊น์ง๋ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฃผ์ด์ง ์ซ์์์ ํน์ ์ธต์๋ฅผ ๊ฐ ์ ์๋์ง๋ฅผ ํ์ธํด์ผํ๊ธฐ ๋๋ฌธ์ 1์ธต๋ถํฐ N์ธต๊น์ง ๋จผ์ ์ ๋ถ ํ์์ํ๋ค.
์ดํ ์ผ์์๋ฆฌ๋ถํฐ K์๋ฆฌ๊น์ง ๋น๊ต๋ฅผ ํ๋๋ฐ ๊ทธ ์์์ ๋ LED๊ฐ ๊ฐ์์ง ๋ค๋ฅธ์ง๋ฅผ ํ๋ณ์ ํด์ ๋ค๋ฅด๋ค๋ฉด cnt๋ฅผ ์ฌ๋ ค์ค๋ค.
์ด๋ ๊ฒ ํจ์ผ๋ก์จ ํน์ ์ซ์๊ฐ ํน์ ์ธต์๊ฐ ๋๊ธฐ์ํด ๋ณํ๋์ด์ผ ํ LED์ซ์๋ฅผ ์ ์ ์๊ฒ๋๊ณ ์ด๊ฒ P๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฃ์ ์ ์๊ฒ ๋๋ค.
๋๋จธ์ง์ฐ์ฐ์๋ฅผ ํตํด์ ์ผ์์๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ฒ๊ณผ ๋๋๊ธฐ๋ฅผ ํตํด์ ์ญ์์๋ฆฌ ๋ฐฑ์์๋ฆฌ๋ํ ๊ตฌํ๋ ๊ฑธ ๋ฐฐ์ ๋ค.
import Foundation
let ch: [[Bool]] = [
[true, true, true, false, true, true, true], //0
[false, false, true, false, false, false, true], //1
[false, true, true, true, true, true, false], //2
[false, true, true, true, false, true, true], //3
[true, false, true, true, false, false, true], //4
[true, true, false, true, false, true, true], //5
[true, true, false, true, true, true, true], //6
[false, true, true, false, false, false, true], //7
[true, true, true, true, true, true, true, true], //8
[true, true, true, true, false, true, true] //9
]
let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
let N = input[0], K = input[1], P = input[2], X = input[3]
var result = 0
for i in 1..<N+1 {
if i==X { // ๊ฐ์ ์ซ์๋ผ๋ฉด ๋์ด๊ฐ๋ค.
continue
}
var cnt = 0 // ๋ฐ๋ LED์ ์ซ์
var from = X, to = i
for k in 0..<K { // ์๋ฆฟ์๋งํผ ์งํ. K๊ฐ 3์ด๋ผ๋ฉด 999๊ฐ ์ต๋๊ฐ์ด๋ 3๋ฒ ์งํ
for j in 0..<7 { // ์ซ์ ํ๋๋น ๋์คํ๋ ์ด ๊ฐ์
if ch[from%10][j] != ch[to%10][j] { cnt += 1 } //LED๊ฐ ๋ค๋ฅด๋ค๋ฉด ์ ํ
}
from /= 10
to /= 10
}
if cnt <= P { // ๋ฐ๋ LED์ ๊ฐ์๊ฐ ์ต๋๊ฐ๋ณด๋ค ์๋ค๋ฉด
result += 1
}
}
print(result)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ํฑํํ (Swift) (0) | 2022.11.16 |
---|---|
๋ฐฑ์ค - 0 ๋ง๋ค๊ธฐ(Swift) (0) | 2022.11.16 |
๋ฐฑ์ค - ๋น๋ฌผ(Swift) (0) | 2022.11.15 |
๋ฐฑ์ค - ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด(Swift) (0) | 2022.11.14 |
๋ฐฑ์ค - ๋ก๋ด ์ฒญ์๊ธฐ(Swift) (0) | 2022.11.14 |