Bibi's DevLog ๐ค๐
[๋ฐฑ์ค 10987] ๋ชจ์์ ๊ฐ์ (Swift) ๋ณธ๋ฌธ
[๋ฐฑ์ค 10987] ๋ชจ์์ ๊ฐ์ (Swift)
๋น๋น bibi 2023. 1. 26. 11:57[๋ฐฑ์ค 10987] ๋ชจ์์ ๊ฐ์ (Swift)
์ ๋ ฅ ๋ฌธ์์ด์์ ๋ชจ์(a, e, i, o, u)์ ๊ฐฏ์๋ฅผ ์ธ์ ์ถ๋ ฅํ๋ ๋จ์ํ ๋ฌธ์ ์ด๋ค.
ํ์ด๋ฅผ ์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผํ๋ค๊ฐ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ณด์๋ค.
- ๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋๋ฉฐ ์ด๋ค ๋ฌธ์๊ฐ a, e, i, o, u ์ค ํ๋๋ผ๋ ๊ฐ์์ง ํ์ธํ๊ธฐ (
==
์ฐ์ฐ์ ํ์ฉ) - a, e, i, o, u ๋ฅผ ๋ด์ ๋ชจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋๋ฉฐ ์ด๋ค ๋ฌธ์๊ฐ ๋ชจ์ ๋ฐฐ์ด์ ํฌํจ๋๋์ง ํ์ธํ๊ธฐ (
contains(_:)
ํ์ฉ)
๋ ํ์ด๋ฅผ ๋ชจ๋ ์์ฑํ๊ณ ๋ ๋ค ๋ชจ๋ ์ ํ๋ ธ๋ค.
๊ฐ์ธ์ ์ผ๋ก ์๋ฌธ์ด ์๊ฒผ๋ ๋ถ๋ถ์ ๋ ํ์ด์ ์คํ์๊ฐ์ด ์์ ํ ๊ฐ์๋ค๋ ๊ฒ์ด๋ค.
๋๋ ๋น์ฐํ ํ์ด1์ด ๋ ๋น ๋ฅผ ๊ฒ์ด๋ผ ์์ํ๊ณ ํ์ด1์ ๋จผ์ ์๋ํ๊ณ , ๋ง์ ๊ฑธ ํ์ธํ ๋ค ํ์ด2๋ ์๋ํ๋๋ฐ ์คํ์๊ฐ์ด ๊ฐ์์ ๋๋๋ค.
๊ทธ๋์ ๋์ ์คํ์๊ฐ์ ์์ธํ ํ๊ตฌํด ๋ณด์๋ค.
ํ์ด 1 (==
์ฐ์ฐ์ ํ์ฉ)
let input = readLine()!
var answer = 0
for char in input {
if char == "a" || char == "e" || char == "i" || char == "o" || char == "u" {
answer += 1
}
}
print(answer)
ํ์ด1์์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ k๋ผ๋ฉด, ๋น๊ตํด์ผ ํ ๋ชจ์์ ๊ฐ์๋ 5๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๊ฒฝ์ฐ ์คํ์๊ฐ์ k*5๊ฐ ๋๋ค.
ํ์ง๋ง ๋ด๊ฐ ํ์ด1์ด ๋ ๋น ๋ฅผ ๊ฑฐ๋ผ๊ณ ์์ํ๋ ์ด์ ๋ contains(_:)
์ ์๊ฐ๋ณต์ก๋๊ฐ O(n) ์ด๊ณ , ๋ฐ๋ผ์ ๋น์ฐํ ์ด๋ณด๋ค๋ ==
์ฐ์ฐ์๊ฐ ๋น ๋ฅผ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ด1์์๋ ==
์ฐ์ฐ์ ||
๋ก ์ด์ด์ ๋ค์ฏ ๋ฒ ์ฌ์ฉํ๊ธด ํ์ง๋ง, ||
์ฐ์ฐ์ ํน์ฑ์ ๋งจ ์ผ์ชฝ๋ถํฐ ์ํํด ํ๋๋ผ๋ true์ด๋ฉด ์ ์ฒด ๊ฒฐ๊ณผ๋ true์ด๋ฏ๋ก ๋ ์ด์ ๋น๊ตํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๊ฑธ short-circuit evaluation ๋ผ๊ณ ํ๋ค๊ณ ํ๋ค. (์ฐธ๊ณ : Swift ๊ณต์ ๋ฌธ์)
๊ทธ๋์ ์กฐ๊ฑด๋ฌธ (char == "a" || char == "e" || char == "i" || char == "o" || char == "u"
) ์ ๋๊น์ง ํ์ธํด์ผํ๋ ๊ฒฝ์ฐ๋ง ์๋๋ผ๋ฉด, k*5๋ณด๋ค๋ ๋น ๋ฅธ ์คํ์๊ฐ์ ๊ฐ์ง ๊ฒ์ด๋ผ ์์ํ ์ ์๋ค.
ํ์ด 2 (contains(_:)
ํ์ฉ)
let input = readLine()!
let aeiou: [Character] = ["a", "e", "i", "o", "u"]
var answer = 0
for char in input {
if aeiou.contains(char) {
answer += 1
}
}
print(answer)
ํ์ด2์์ ์ฌ์ฉํ๋ contains(_:)
์ ์๊ฐ๋ณต์ก๋๊ฐ O(n) ์ด๋ค. ์ด๋ n์ ๋ฐฐ์ด์ ๊ธธ์ด์ด๋ฉฐ, ์ฌ๊ธฐ์๋ aeiou
์ ๊ธธ์ด์ธ 5๊ฐ ๋๋ค.
๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋๋ฉฐ contains๋ฅผ ์ ์ฉํ๊ธฐ ๋๋ฌธ์, ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ k์ผ ๋ ์คํ์๊ฐ์ k * 5์ด๋ค.
์ด ๋ ๋ด๊ฐ ๊ฐ๊ณผํ ๊ฒ์ contains์ ๋์์ด๋ค.
๊ณต์๋ฌธ์์๋ contains(_:)
์ ์๊ฐ๋ณต์ก๋๊ฐ O(n)์ด๋ผ๊ณ ๋ง ์ค๋ช
๋์ด ์๋ค.
ํ์ง๋ง contains ์ญ์ ๋ฐฐ์ด์ ์ ์์๋ถํฐ ํ๋์ฉ ๋น๊ตํ๋ฏ๋ก, ํ์ํ ์์๊ฐ ์์ ์๋ ๊ฒฝ์ฐ n๋ณด๋ค ๋น ๋ฅด๊ฒ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ค.
๋จ์ํํด ํํํ์๋ฉด [0, 0, 0, 0, 1]์์ contains(1)
๋ก 1์ ์ฐพ๋ ๊ฒ๋ณด๋ค [1, 0, 0, 0, 0]์์ contains(1)
๋ก 1์ ์ฐพ๋ ๊ฒ์ด ๋ ๋น ๋ฅด๋ค๋ ๊ฒ์ด๋ค. ์ฐพ๋ ์์๊ฐ ๋งจ ์์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
(์์ธํ ๋ด์ฉ์ contains(_:)
๋ฌธ์์ ํจ๊ป ํด์ํ ์ด ๊ธ์ ์ค๋ช
๋์ด ์๋ค)
๊ฒฐ๋ก
==
๋ฅผ ์ฌ์ฉํ๋ ํ์ด1์, ์ต์
์ ๊ฒฝ์ฐ ์กฐ๊ฑด๋ฌธ (char == "a" || char == "e" || char == "i" || char == "o" || char == "u"
) ์ ์ ๋ถ ๋น๊ตํด์ผ ํ์ง๋ง, ์์ ์กฐ๊ฑด๋ฌธ์ด ํ๋๋ผ๋ true์ธ ๊ฒฝ์ฐ short-circuit evaluation์ ์ํด ๋๋จธ์ง ์กฐ๊ฑด๋ฌธ์ ์คํ๋์ง ์๋๋ค.
contains(_:)
๋ฅผ ์ฌ์ฉํ๋ ํ์ด2 ์ญ์, ์ต์
์ ๊ฒฝ์ฐ ๋ชจ์ ๋ฐฐ์ด์ ๋๊น์ง ์์๊ฐ ํฌํจ๋๋์ง ๋น๊ตํด์ผ ํ์ง๋ง, ์ฐพ๋ ์์๊ฐ ์์ชฝ์ ์๋ ๊ฒฝ์ฐ ๋๋จธ์ง ๋น๊ต๋ฅผ ๋ฉ์ถ๊ณ ์ฆ์ true๋ฅผ ๋ฐํํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด๋ฌธ ๋น๊ต ์์(char == "a" || char == "e" || char == "i" || char == "o" || char == "u"
) ์ contains๋ฅผ ํ์ธํ๋ ๋ฐฐ์ด์ ์์ ์์(["a", "e", "i", "o", "u"]
)๊ฐ ๊ฐ์ ํ ๋์ ๋์ผํ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ๊ฒ์ด๋ค!
'ํ๋ก๊ทธ๋๋ฐ > ์๊ณ ๋ฆฌ์ฆ ํ์ด Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 10872] ํฉํ ๋ฆฌ์ผ (Swift) - ์ฌ๊ท (0) | 2023.01.30 |
---|---|
[๋ฐฑ์ค 11006] ๋จ์ฑ์ด์ ๋ญ์ฅ (Swift) (0) | 2023.01.30 |
[๋ฐฑ์ค 10811] ๋ฐ๊ตฌ๋ ๋ค์ง๊ธฐ (Swift) (0) | 2023.01.19 |
[Swift] BFS ์์ ์ ํ์ด (๋ฐฑ์ค 2178 ๋ฏธ๋ก ํ์) (0) | 2023.01.16 |
[Swift] DFS ์์ ์ ํ์ด (Softeer ์ฅ์ ๋ฌผ ์ธ์ ํ๋ก๊ทธ๋จ) (0) | 2023.01.16 |