[๋ฐฑ์ค] (Swift) 1244๋ฒ - ์ค์์น ์ผ๊ณ ๋๊ธฐ (๊ตฌํ)
๐ ๋ฌธ์
https://www.acmicpc.net/problem/1244
1244๋ฒ: ์ค์์น ์ผ๊ณ ๋๊ธฐ
์ฒซ์งธ ์ค์๋ ์ค์์น ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ค์์น ๊ฐ์๋ 100 ์ดํ์ธ ์์ ์ ์์ด๋ค. ๋์งธ ์ค์๋ ๊ฐ ์ค์์น์ ์ํ๊ฐ ์ฃผ์ด์ง๋ค. ์ผ์ ธ ์์ผ๋ฉด 1, ๊บผ์ ธ์์ผ๋ฉด 0์ด๋ผ๊ณ ํ์ํ๊ณ ์ฌ์ด์ ๋น์นธ์ด ํ๋์ฉ
www.acmicpc.net
๐ ๋์ ํ์ด
๊ตฌํ๋ฌธ์ ๋ผ์, ๊ทธ๋ฅ ๋ณด์๋ง์ ํ์ด๋ฅผ ๋ ์ฌ๋ฆฐ ํ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์ฌ์/๋จ์์ผ๊ฒฝ์ฐ ์ค์์น๋ฅผ ์ผ๋ ๋ฐฉ์์ด ๋ค๋ฅธ๋ฐ ์ด ๋ถ๊ธฐ์ฒ๋ฆฌ๋ง ์ ํด์ฃผ๋ฉด๋๋ค.
์,, ๊ทผ๋ฐ ๋ฒ์์ค์ ? ๋ญ์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๋ญ๊ฐ ์๊พธ ์ด์ํด์ ์์ฒญ ํ๋ ธ๋ค... ์ง์ง ๋ฐ๋ณด... ์ฑ๋ณ์ด ๋จ์์ผ ๋ ๋ถ๋ถ์์ ์ฒ์์ while๋ฌธ์ผ๋ก ์๋์ฒ๋ผ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
ใ ใ ใ ใ ใ num+=num ์ฌ๊ธฐ๋ถ๋ถ์์, num์ด 3์ผ๋, 3, 6, 9,,, ์ด๋ ๊ฒ ์ปค์ ธ์ผํ๋๋ฐ ๋ด ์ฝ๋์ผ๊ฒฝ์ฐ num๋ํ ๊ณ์ ๋ฐ๋๊ธฐ ๋๋ฌธ์ num์ 3์ ๋ฐฐ์๊ฐ ์๋๋ผ 3+3์ด ๋์๋ค๊ฐ 6+6 ์ด ๋์๋ค๊ฐ... ๋ง๋์๋๊ฒ ์ปค์ง๋ค. ์ด๋ถ๋ถ์ด ์๋ชป๋๊ฒ์ ์ธ์งํ์ง ๋ชปํ๊ณ ๋ช๋ฒ์ ํ๋ฆฌ๊ณ ์ง์ง๊ณ ๋ณถ์๋??
ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ์ง์ง ;;; ๋๋ฌด ํ๊ฐ๋ฌ๋ค... ๋ง์๋๋ฐ ๋๋์ฒด ์๋ง์์ง? ์ถ์ด์ ๋ฐ๋ณด๊ฐ์ด ์ด๊ฒ์ ๊ฒ ๋ ๋ฐ๊ฟ๋ณด๋ฉด์ ํ๋ฆฐ ๋ถ๋ถ์ ์ฐพ์๋๊น์ง ๊ณ์ ์์ ์ ์์ ์ ๋ฐ๋ณต ํด๋ดค๋ค. ๊ฒฐ๊ตญ.. ์ ๋์ด ๋ฌธ์ ์๋๊ฒ...
์ด๊ธฐ์ num์ ์๋ก์ด ๋ณ์์ ์ ์ฅํด๋๊ณ ๊ณ์ ๋ํด์คฌ์ด์ผํ๋๋ฐ.. ์ผ๋จ ์ด์จ๋ ๋ for๋ฌธ์ stride๋ฅผ ์ฌ์ฉํด์ ํด๊ฒฐํ๋ค..ํ..
๐ ์ ๋ต์ฝ๋
import Foundation
let switchNum = Int(readLine()!)!
var switches = [-1] + readLine()!.split(separator: " ").map { Int($0)! }
let studentNum = Int(readLine()!)!
var students = [[Int]]()
for _ in 0..<studentNum {
students.append(readLine()!.split(separator: " ").map{ Int($0)! })
}
for student in students {
switch student[0] {
case 1:
let num = student[1]
for i in stride(from: num, through: switchNum, by: num) {
switches[i] = switches[i] == 1 ? 0 : 1
}
default:
let num = student[1]
switches[num] = switches[num] == 1 ? 0 : 1
for i in 1...switchNum/2 {
if num - i < 1 || num + i > switchNum {
break
}
if switches[num - i] == switches[num + i] {
switches[num - i] = switches[num - i] == 1 ? 0 : 1
switches[num + i] = switches[num + i] == 1 ? 0 : 1
} else {
break
}
}
}
}
for i in 1...switchNum {
print(switches[i], terminator: " ")
if i % 20 == 0 {
print()
}
}
ํ๋ค๋ค ๋ฒ์จ... ์ด๋ฒ์ฃผ ์์ด๋ฌ์ง ใ ใ ํ์คํ ๊ทธ์ ๊ป๋ถํฐ ์ ์ ์ด ๋๊ฐ์์๋๋ฐ ์์ง๋ ์ ์ ์ด ๋์์ค์ง ์์ ๊ธฐ๋ถ์ด๋ค. ์ด์ํด.. ์ด์ํ๊ฑฐ์์ ์๊พธ ํ๋ฆฌ๊ณ ๋จธ๋ฆฌ๋ ์๋์๊ฐ๊ณ ์ง์ค๋ ์๋๊ณ ใ ใ ์ค๋ฒ4 ํธ๋๋ฐ ์๊ฐ์ ์ผ๋ง๋ ์ด๊ฑฐ์ผ ํ...