๋ฐ์ํ
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/3085
ํ์ด
- ์ข์ฐ/์ํ ๋ก ์ธ์ ํ ์ฌํ์ ๋ฐ๊ฟ ์ ์๋ค.
- ํ[1]๊ณผ ๊ฐ์ด ์ฌํ์ด ์ฃผ์ด์ก๋ค. ์ฌ๊ธฐ์ [0][0] ์ฌํ๊ณผ [0][1] ์ฌํ์ ๋ฐ๊พธ์ด๋ณด์.
- ํ[2] ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค. ์ด๋ ๊ฒ ๋๋ฉด ํ๋ผ๋ฆฌ ์ธ์ ํ ์ฌํ์ ์ต๊ณ ๊ฐ์๋ 2, ์ด๋ผ๋ฆฌ ์ธ์ ํ ์ฌํ์ ๊ฐ์๋ 3์ด ๋๋ค.
- ๋ค์ ํ[1]๋ก ๋์๊ฐ์ ํ[1]์์ [0][0] ์ฌํ๊ณผ [1][0] ์ฌํ์ ๋ฐ๊พธ์ด๋ณด์.
- ํ3์ ๋ณด๋ฉด, ํ๋ผ๋ฆฌ ์ธ์ ํ ์ฌํ ์ต๊ณ ๊ฐ์๋ 2๊ฐ, ์ด๋ผ๋ฆฌ ์ธ์ ํ ์ฌํ ์ต๊ณ ๊ฐ์๋ 1๊ฐ ์ด๋ค.
์ด ์์ ๊ณผ์ ์ for ๋ฌธ์ ํตํด์ ๋ฐ๋ณตํด์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์ ํ'์ต๋์ ์ฌํ ๊ฐ์'๋ฅผ ๊ตฌํ๋ func์ ๋ง๋ค์๋ค.
โถ swapAt()
์ธ๋ฑ์ค์ ํด๋นํ๋ ๊ฐ์ ์๋ก ๋ฐ๊พธ์ด์ฃผ๋ ๋ฉ์๋์ด๋ค. ์๋ฆฌ๋ฅผ ๋ฐ๊พธ์ด์ค ๋, ๋ณต์กํ๊ฒ ์ฝ๋๋ก ์์ฑํ์ง ์๊ณ ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ์ธ๋ฑ์ค ์๋ฆฌ์ ๊ฐ๋ค์ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
์๋์ ๊ฐ์ด swapAt๊ดํธ ์์ ์ธ๋ฑ์ค ๋๊ฐ๋ฅผ ์ ๋ ฅํ๋ฉด, ๊ทธ ๋๊ฐ์ ๊ฐ์ด ๋ฐ๋์ด ์ถ๋ ฅ๋๋ค.
var i = ["A", "B", "C"]
i.swapAt(1, 2)
print(i)
// prints ["A", "C", "B"]
https://developer.apple.com/documentation/swift/array/2893281-swapat
๋ฌธ์ ํ์ด ์ฝ๋
- ๋จผ์ ํ๋ผ๋ฆฌ, ์ด๋ผ๋ฆฌ ์ธ์ ํ ์ต๊ณ ๊ฐ์๋ฅผ ์ธ์ด์ฃผ๋ ํจ์๋ฅผ ๋ง๋ค์๋ค.
- ์ด์ฐจํผ ์ต์ข result ๋ ์ต๋๊ฐ์ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด result ์ ๊ณ์ max ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ์ด๊ธฐํ ์์ผ์ค๋ค.
func row_count() {
for i in 0..<n {
var count = 1
for j in 0..<n-1 {
if input[i][j] == input[i][j+1] {
count += 1
} else {
result = max(result, count)
count = 1
}
result = max(result,count)
}
}
}
func col_count() {
for i in 0..<n {
var count = 1
for j in 0..<n-1 {
if input[j][i] == input[j+1][i] {
count += 1
} else {
result = max(result, count)
count = 1
}
result = max(result, count)
}
}
}
- ๊ทธ ๋ค์, main ์ฝ๋๋ฅผ ์ง ๋ค.
- 2์ฐจ์ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ for๋ฌธ ๋๋ฒ์ ์ด์ฉํ๊ณ , ํ๋ผ๋ฆฌ ๋ฐ๊ฟ์ result๋ฅผ ๊ตฌํด์ฃผ๊ณ , ์ด๋ผ๋ฆฌ ๋ฐ๊พธ์ด result๋ฅผ ๊ตฌํด์ฃผ์๋ค.
- ๊ทธ ๊ฒฐ๊ณผ ์ต์ข ์ ์ผ๋ก result๋ฅผ ์ถ๋ ฅํด์ค๋ค.
for i in 0..<n {
for j in 0..<n-1 {
// ์๋ฆฌ ๋ฐ๊ฟ์ result ๊ฐฑ์ ํด์ฃผ๊ณ
input[i].swapAt(j,j+1)
row_count()
col_count()
//๋ค์ ์๋ฆฌ ๋ฐ๊ฟ์ค
input[i].swapAt(j,j+1)
//์ด๋ผ๋ฆฌ ์๋ฆฌ ๋ฐ๊ฟ๊ฑด๋ฐ, ๊ฐ์ temp ์ ์ ์ฅํด๋๋ค๊ฐ ๊ฐ์ ์ค์ผํด.
var temp = input[j][i]
input[j][i] = input[j+1][i]
input[j+1][i] = temp
row_count()
col_count()
// ์๋์๋ฆฌ๋ก ๋๋ ค
temp = input[j][i]
input[j][i] = input[j+1][i]
input[j+1][i] = temp
}
}
print(result)
ํ๊ณ
- ์ฒ์ํธ๋ ์ ํํ์ด๋ผ ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ชฐ๋ผ์ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ์๋ค.
- ์ถํ ๋ค์ ์ค๋ต๋ ธํธ๋ก ๋ค๋ฃฐ ์์ ์ด๋ค!!
- ์์ ํ์์ด ์ง์ง ํ๋ํ๋ ๋ค ํด๋ณด๋ ๋ฐฉ์์ด๊ตฌ๋!
๋ฐ์ํ
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] (Swift) 15651๋ฒ - N๊ณผ M (3) (5) | 2022.04.25 |
---|---|
[๋ฐฑ์ค] (Swift) 1748๋ฒ - ์ ์ด์ด์ฐ๊ธฐ 1 (0) | 2022.04.20 |
[๋ฐฑ์ค] (Swift) 2156๋ฒ - ํฌ๋์ฃผ ์์ (dp, ์ค์ํํธ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ํ์ด) (0) | 2022.03.27 |
[๋ฐฑ์ค] (Swift) 9465๋ฒ - ์คํฐ์ปค (dp ํ์ด) (0) | 2022.03.25 |
[๋ฐฑ์ค] (Swift) 11057๋ฒ - ์ค๋ฅด๋ง ์ (dp, 3์ค for๋ฌธ ์ฌ์ฉ) (0) | 2022.03.25 |