BOJ: ๋ฐฉ ๋ฒํธ - 1475๋ฒ
1475๋ฒ: ๋ฐฉ ๋ฒํธ
์ฒซ์งธ ์ค์ ๋ค์์ด์ ๋ฐฉ ๋ฒํธ N์ด ์ฃผ์ด์ง๋ค. N์ 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ ๋๋ 0์ด๋ค.
www.acmicpc.net
๋ฌธ์
๋ค์์ด๋ ์์ง์ด์ ์์ง์ ์๋ก ์ด์ฌ์๋ค. ๋ค์์ด๋ ์๊ธฐ ๋ฐฉ ๋ฒํธ๋ฅผ ์์ ํ๋ผ์คํฑ ์ซ์๋ก ๋ฌธ์ ๋ถ์ด๋ ค๊ณ ํ๋ค.
๋ค์์ด์ ์์ง์์๋ ํ๋ผ์คํฑ ์ซ์๋ฅผ ํ ์ธํธ๋ก ํ๋ค. ํ ์ธํธ์๋ 0๋ฒ๋ถํฐ 9๋ฒ๊น์ง ์ซ์๊ฐ ํ๋์ฉ ๋ค์ด์๋ค. ๋ค์์ด์ ๋ฐฉ ๋ฒํธ๊ฐ ์ฃผ์ด์ก์ ๋, ํ์ํ ์ธํธ์ ๊ฐ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ์์ค. (6์ 9๋ฅผ ๋ค์ง์ด์ ์ด์ฉํ ์ ์๊ณ , 9๋ 6์ ๋ค์ง์ด์ ์ด์ฉํ ์ ์๋ค.)
๋ด๊ฐ ์์ฑํ ์ฝ๋
import sys, math | |
n = sys.stdin.readline().strip() | |
num = [0 for _ in range(9)] | |
for i in n: | |
if int(i) == 9: | |
num[6] += 1 | |
else: | |
num[int(i)] += 1 | |
m = 0 | |
for i in range(len(num)): | |
if i == 6 and num[i] >= 2: | |
num[i] = math.ceil(num[i]/2) | |
if m < num[i]: | |
m = num[i] | |
print(int(m)) |
import Foundation | |
let n = readLine()! | |
var num = Array(repeating: 0, count: 9) | |
n.forEach { | |
if Int(String($0)) == 9 { | |
num[6] += 1 | |
} else { | |
num[Int(String($0))!] += 1 | |
} | |
} | |
var m = 0 | |
for i in 0..<num.count { | |
if i == 6 && num[i] >= 2 { | |
num[i] = Int(ceil(Double(num[i]) / 2.0)) | |
} | |
if m < num[i] { | |
m = num[i] | |
} | |
} | |
print(m) |
ํ์ด
- ์
๋ ฅ๋ฐ์ ๋ฐฉ ๋ฒํธ ๋ฌธ์์ด์ ์ํํ๋ฉด์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋
num
๋ฐฐ์ด์ ๊ฐ์๋ฅผ ์ ๋ค. ์ด ๋ 9๋ 6๊ณผ ๊ฐ์ด ์ธ ์ ์์ผ๋ฏ๋ก 9๋num[6]
์ ์นด์ดํ ํ๋ค. num
์ ์ํํ๋ฉด์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ๋๋ค. ์ด ๋num[6]
์ด 2๋ณด๋ค ํฐ ๊ฒฝ์ฐ 2๋ก ๋๋ ์ ์ฌ๋ฆผ ์ฒ๋ฆฌํด์ ์ ์ฅํ๋ค. (6์ ํ ์ธํธ์ ๋ ๊ฐ ์์ผ๋ฏ๋ก)- ์ถ๋ ฅํ ๋
int
๋ก ํ๋ณํ์ ํ ๋ฒ ํด์ค์ผ ํจ! ์๋ํ๋ฉดnum[6]
์ 2๋ก ๋๋๊ฒ ๋๋ฉด 2.0 ์ฒ๋ผ ์์์ ์ด ํฌํจ๋์ ๋์จ๋ค.
์ฃผ์ํ ์
- 0 โ 1์ ๋ฐํํด์ผ ํจ
- 669 โ 2๋ฅผ ๋ฐํํด์ผ ํจ
- 6699 โ 2๋ฅผ ๋ฐํํด์ผ ํจ
- 123456789 โ 1์ ๋ฐํํด์ผ ํจ
์ฒ์์๋ ๋จ์ํ๊ฒ num[6] /= 2
๋ฅผ ํ ๋ค์ max()
๋ฅผ ์ฌ์ฉํด์ ์ถ๋ ฅํ๋๋ฐ, 10%์์ ์คํจํด์ ๋ฐ๋ก๋ฅผ ์ฐพ์๋ดค๋ค. ๋ด๊ฐ ํ๋ฆฐ ์ด์ ๋ 6์ ์
๋ ฅํ ๋ 0์ด ๋ฐํ๋์์๋ค. ํํ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.