๋ฌธ์ ์ค๋ช
C ์ธ์ด ํ๋ก๊ทธ๋๋ฐ์์ ๋ฌธ์์ด(string)์ nativeํ ์๋ฃํ์ด ์๋๋ค. ์ฌ์ค, ๋ฌธ์์ด์ ๊ทธ์ , ๋ฌธ์์ด์ ๋์ ํ์ํ๊ธฐ ์ํ ๋ง๋จ์ NULL์ด ์ฌ์ฉ๋, ๋ฌธ์๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ผ ๋ฟ์ด๋ค. ํ์ง๋ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์, C ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๋ฐ์ ๋งค์ฐ ์ ์ฉํ ํจ์๋ค์ ์ ๊ณตํ๊ณ ์๋ค : ๊ทธ๋ค ์ค์๋ strcpy, strcmp, strtol, strtok, strlen, strcat ๊ฐ ์๋ค.
ํ์ง๋ง, ์ ์๋ ค์ ธ ์์ง ์์ผ๋ฉฐ, ์ ์ฌ์ฉ๋์ง๋ ์๋ ํจ์๊ฐ ํ๋ ์๋ค : strfry ํจ์๋ค. strfry ํจ์๋ ์ ๋ ฅ๋ ๋ฌธ์์ด์ ๋ฌด์์๋ก ์ฌ๋ฐฐ์ดํ์ฌ ์๋ก์ด ๋ฌธ์์ด์ ๋ง๋ค์ด๋ธ๋ค. (์ญ์ ์ฃผ : ์ฌ๊ธฐ์์ ์ ๋ ฅ๋ ๋ฌธ์์ด๊ณผ ์๋ก ์ฌ๋ฐฐ์ด๋ ๋ฌธ์์ด์ด ๋ค๋ฅผ ํ์๋ ์๋ค.)
๋ ๊ฐ์ ๋ฌธ์์ด์ ๋ํด, 2๋ฒ์งธ ๋ฌธ์์ด์ด 1๋ฒ์งธ ๋ฌธ์์ด์ strfry ํจ์๋ฅผ ์ ์ฉํ์ฌ ์ป์ด์ง ์ ์๋์ง ํ๋จํ๋ผ.
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ์ 0 < N < 1001 ์ด๋ค.
๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค๋ ํ๋์ ์ค์ ์์ด ์๋ฌธ์๋ค๋ก๋ง ์ด๋ฃจ์ด์ง ๋ ๊ฐ์ ๋ฌธ์์ด์ด ํ ๊ฐ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ๋ฌธ์์ด์ ๊ธธ์ด๋ ์ต๋ 1000 ์ด๋ค.
์ถ๋ ฅ
๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค์ ๋ํด, 2๋ฒ์งธ ๋ฌธ์์ด์ด 1๋ฒ์งธ ๋ฌธ์์ด์ strfry ํจ์๋ฅผ ์ ์ฉํ์ฌ ์ป์ด์ง ์ ์๋์ง์ ์ฌ๋ถ๋ฅผ "Impossible"(๋ถ๊ฐ๋ฅ) ๋๋ "Possible"(๊ฐ๋ฅ)์ผ๋ก ๋ํ๋ด์์ค. (๋ฐ์ดํ๋ ์ ์ธํ๊ณ ์ถ๋ ฅํ๋ค.)
์ ์ถ๋ ฅ ์์
์ ๋ ฅ
4
a a
ab ba
ring gnir
newt twan
์ถ๋ ฅ
Possible
Possible
Possible
Impossible
๋ด ๋ฌธ์ ํ์ด
import Foundation
var num = Int(readLine()!)!
for _ in 0..<num {
print(solution(readLine()!))
}
func solution(_ str: String) -> String {
var arr = str.components(separatedBy: " ")
for i in arr[1] {
var n1 = 0
var n2 = 0
for j in arr[0] {
if i == j { n1 += 1 }
}
for j in arr[1] {
if i == j { n2 += 1 }
}
if n1 != n2 { return "Impossible" }
else {
arr[0] = arr[0].filter({$0 != i})
arr[1] = arr[1].filter({$0 != i})
}
}
return "Possible"
}
- ํ ์ค์ฉ ์ ๋ ฅ ๋ฐ๊ณ , solution ํจ์๋ฅผ ํธ์ถํด์ฃผ๋ ์์ผ๋ก ๊ตฌ์ฑํ๋ค.
- solution ํจ์์์๋ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ๊ณ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฐฐ์ด๋ก ์์ฑํ๋ค.
- ํ ์ค๋ก ์ ๋ ฅ๋ ๋ ๊ฐ์ง ๋ฌธ์์ด ์ค ๋ ๋ฒ์งธ์ธ arr[1]์ ํด๋นํ๋ ๋ฌธ์์ด์ ๊ธฐ์ค์ผ๋ก for๋ฌธ์ ๋๋ ธ๋ค.
- arr[1] ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๊ธ์๋ถํฐ arr[0]์์์ ํด๋น ๊ธ์์
arr[1]์์์ ํด๋น ๊ธ์ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ์ธ์ด ๋น๊ตํ๊ณ ,
๊ฐ ๋ฌธ์์ด์์ ํด๋น ๊ธ์์ ๊ฐ์๊ฐ ๊ฐ์ง ์์ ๊ฒฝ์ฐ ๋ฐ๋ก Impossible์ ์ถ๋ ฅํ๋๋ก ํ๋ค.
๊ฐ์ ๊ฒฝ์ฐ์ ํด๋น ๋ฌธ์๋ filter๋ฅผ ์ฌ์ฉํด ๊ฐ ๋ฌธ์์ด์์ ์ ์ธ์์ผ์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ์๊ฐ๋ณด๋ค ์์ธ๊ฐ ๋ง์ ๋ฌธ์ ์ธ๋ฏ ํ๋ค.
- ์ฝ๊ฒ ์๊ฐํ๊ณ ๋น ๋ฅด๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ, ํ๋ฆด ๋๋ง๋ค ์๋ก์ด ์์ธ๊ฐ ์๊ฐ๋์ ๊ณ์ ์์ ํ๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ๋ฐฉ ๋ฒํธ BOJ #1475 (0) | 2021.07.30 |
---|---|
[Swift Algorithm] ๋ฐฉ ๋ฐฐ์ BOJ #13300 (0) | 2021.07.30 |
[Swift Algorithm] ์ซ์์ ๊ฐ์ BOJ #2577 (0) | 2021.07.28 |
[Swift Algorithm] ๊ฐ์ ์ธ๊ธฐ BOJ #10807 (0) | 2021.07.28 |
[Swift Algorithm] ์ํ๋ฒณ ๊ฐ์ BOJ #10808 (0) | 2021.07.27 |
๋๊ธ