๐ ๋ฌธ์
๐ ์ค๋ต์ผ๋ก ๋ฐ๋ผ๋ณธ ๋์ ์ฝ๋
์ด๋ฒ์๋ ์ญ์, time out ์ด๋ค.ใ ใ ใ ใ ใ ๋ด๊ฐ ์ฌํ๊น์ง ์ฝ๋ฉํ ์คํธ๋ฅผ ์ค๋นํ์๋, ์๊ฐ๋ณต์ก๋์ ๋ํด์ ํฌ๊ฒ ๊ณ ๋ คํ์ง ์๊ณ ๊ณต๋ถํ์๋ค. ๋์ฒด ์ด๊ฑธ ์ด๋ป๊ฒ ๊ณ ๋ คํ๋ฉด์ ๊ณต๋ถํ๋จ ๋ง์ธ๊ฐ? ๋ค๋ค ์ฒ์ฌ์ธ๊ฐ... ๊ทธ๋ฅ ๋ฌธ์ ๋ฅผ ํ์ง๋ ๋ชปํ๋๋ฐ ์๊ฐ๋ณต์ก๋๊น์ง ๊ณ ๋ คํด์ผํ๋ค๋,, ํ.. ์ฌํ๋ค.
์ด๊ฒ ๋์ ์ฝ๋์ด๋ค. ๊ทธ๋ฅ ์ง์ง ๋ ๋จ์ํ๊ฒ for๋ฌธ์ ๊ฐ๊ฒผ๋ค!
public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int {
var count = 0
for i in A...B {
if i % K == 0 {
count += 1
}
}
return count
}
์ญ์๋,,, ์๊ฐ์ด๊ณผ. ๋ง์ฝ A๊ฐ 1, B๊ฐ 2,000,000,000์ด๊ณ , K๊ฐ 2๋ผ๋ฉด, ์ต๋ 2,000,000,000์ for๋ฌธ์ด ๋๊ฒ ๋๋ค. ๋์๋ฒ๋ ค~ ๋น์ฐํ ์๊ฐ์ด๊ณผ์ง. ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค์ด๋ณด์.
์์ ๋จ์ํ๊ฒ for๋ฌธ์ ์ต์๋ก ๋๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์.
๐ B์์ A๋ฅผ ๋นผ๊ณ , K๋ก ๋๋ ์ค ๋ชซ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๊ฐ์ง๋ค๋ฉด?
public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int {
let range = B - (A - 1)
return range / K
}
์จ์๋... ์ฝ๋๋ฅผ ์ด๋ ๊ฒ ์ผ๋๋ฐ, ์๋ ์ผ์ด์ค๋ค์์ ์ ๋ถ ์ค๋ต์ด์๋ค. ๋ต์ ์ ๋ง ๊ฐ๊น์ด๋ฐ ๋ค 1์ ๋์ ์ฐจ์ด๋ก ์ค๋ต์ด ๋ฌ๋ค. ๊ทธ๋์ ๋ค์ํ๊ฒ ๋ฒ์๋ฅผ ์์ ํ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ, ๊ฒ์ ์ค๋ต,, ๋์ฒด ์?
A = 11, B = 345, K = 17 ์ผ์ด์ค๋ ํ๋ ธ๋ค. ์์ ์ดํด๋ณด์. 345๊น์ง 17์ ๋ฐฐ์๋ ์ด 20๊ฐ๋ค. ์,, ๊ทผ๋ฐ 19๊ฐ๋ผ๊ณ ์ถ๋ ฅ๋๊ตฌ๋. ์ ์ด๋ ๊ฒ ๋์ค์ง?
345์์ 11์ ๋นผ๋ฒ๋ฆฌ๋๊น,334๊ฐ ๋๋ค. ๊ฒฐ๊ตญ, 334๊น์ง 17์ ๋ฐฐ์๋ฅผ ์ฐพ๊ฒ ๋๋ฉด, 17์ ๋ฐฐ์์ธ 340์ด ๋ฒ์์์ ๋ค์ด๊ฐ์ง ๋ชปํด์ ๊ฐฏ์๊ฐ ์ธ์ด์ง์ง ์์ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด,, ๋ค๋ฅธ๋ฐฉ์์๋ก ํด์ผํ๋ค. (์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ด๊ฐ ์๋ชปํ์ค ๋ชจ๋ฅด๊ณ ๊ณ์ ์ฝ๋๋ง ๊ณ ์น๊ณ ์์๋ค. ใ
ใ
๋ฐ๋ณด.. .ํ..)
๐ ๊ทธ๋ผ B๊น์ง์ ๋ฐฐ์ ๊ฐฏ์์์ A๊น์ง์ ๋ฐฐ์ ๊ฐฏ์๋ฅผ ๋นผ์ฃผ์
์ด ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ํ์ด๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์!
์ ์ ๋ ์ค๋ต์ด์ผ...
public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int {
let bcount = B / K
let acount = A / K
return bcount - acount
}
๊ฒฐ๊ตญ ํ๊ฐ๋์ ์ธํฐ๋ท์ ๋ดค๋ค. ๋ญ๋ผ๊ณ ??? ๋๋์
์ ํ๋ฉด ๋ฐ์ฌ๋ฆผ๋์ด integer๋ก ํํ๋๋ค๊ณ ?!?! ์ฐธ๋.. ๊ทธ๋๊น ๋๋ ๊ฒฐ๊ณผ๊ฐ 2.5๋ฉด, 3์ด ์ถ๋ ฅ๋๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ๊ณ์ ํ๋ ธ๋๊ฒ.. ์๋ ๊ทธ๋ผ,, ํ.. Floor ์ฒ๋ฆฌ๋ก ์์์ ์๋๋ฅผ ๋ฒ๋ ค๋ฒ๋ฆฌ์... ใฑใทใฑใท
(์ฐธ๊ณ - https://jeong9216.tistory.com/440)
๐ ์ ๋ต์ฝ๋
public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int {
let bcount = Int(floor(Double(B) / Double(K)))
let acount = Int(floor(Double(A-1) / Double(K)))
return bcount - acount
}
์ค์์์์,,, ์ง์ง ์ด์ด์์ด! floor๋ก ์์ซ์ ์ ๋ฒ๋ ค์ฃผ๊ณ ์ต์ข ์ ์ผ๋ก ๋นผ์ ๊ฐ์ ๋์ถํด๋๋ค. .. ๋๋์ด ์ฑ๊ณต
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค ๋ฌธ์ ํ์ด๋ฅผ ์ํ ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ (sys.stdin.readline(), input() ์ฐจ์ด์ ) (0) | 2024.06.15 |
---|---|
[Codility] (Swift) MaxCounters (4) | 2022.12.22 |