Problem
μ½λ©ν μ€νΈ μ°μ΅ - κ΄κ³ μ½μ
μκ°μ λνλ΄λ HH, H1, H2μ λ²μλ 00~99, λΆμ λνλ΄λ MM, M1, M2μ λ²μλ 00~59, μ΄λ₯Ό λνλ΄λ SS, S1, S2μ λ²μλ 00~59κΉμ§ μ¬μ©λ©λλ€. μλͺ»λ μκ°μ μ λ ₯μΌλ‘ μ£Όμ΄μ§μ§ μμ΅λλ€. (μ: 04:60:24, 11
programmers.co.kr
Solution
ν΅μ¬
1. λͺ¨λ μκ°μ μ΄λ‘ νμ°νκΈ°
μ΄ μ¬μμκ°, κ΄κ³ μκ°, μμ²μλ€μ΄ μ¬μμ μμν μκ°, μμ²μλ€μ΄ μ¬μμ λλΈ μκ°μ λͺ¨λ μ΄λ‘ νμ°ν©λλ€.
ex) μ΄ μ¬μμκ°μ΄ 1μκ° 11λΆ 11μ΄ μ΄λΌλ©΄ -> 60λΆ 11λΆ 11μ΄ -> 3600μ΄ + 660μ΄ + 11μ΄ = 4271μ΄
(μλ Source Codeμμ makeSeconds ν¨μλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
2.μ΄ νλ μ΄ μκ°μ μ΄λ‘ νμ°ν κ°―μμ +1λ§νΌμ 0μ λ£μ κ°μΌλ‘ λ°°μ΄ λ§λ€κΈ°(μ΅λ 360001κ°)
ex) μ΄ μ¬μμκ°μ΄ 1μκ° 11λΆ 11μ΄ μ΄λΌλ©΄ 4271μ΄μ΄λ―λ‘ [0,0,0,0,0.....] 4272κ° κΈΈμ΄μ λ°°μ΄μ λ§λ€μ΄μ€.
(μλ Source Codeμμ allPlaySeconds λ³μλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
3.λ‘κ·Έμμ μλ μμκ³Ό λμ μμμ λ§λ λ°°μ΄μ νμν΄μ£ΌκΈ°
μμνλ μ«μμ μΈλ±μ€μ +1μ ν΄μ£Όκ³ λλλ μ«μμ μΈλ±μ€μ -1μ ν΄μ€λλ€.
ex) μμ²μκ° 2μ΄λΆν° 5μ΄κΉμ§ λ΄€λ€λ©΄ 2λ²μ§Έμ 5λ²μ§Έ μΈλ±μ€ -> [0,0,1,0,0,-1]
(μλ Source Codeμμ for log in logsλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
4. μ΄ νλ μ΄ μκ° λ°°μ΄μ μμ²μλ€μ μ μ νκΈ°
νμ¬ μΈλ±μ€λ₯Ό νμ¬ μΈλ±μ€ μ«μμ νμ¬ μΈλ±μ€ -1μ μ«μλ₯Ό λν΄μ€λλ€.
μ΄λ κ² νλ©΄ λͺ¨λ μμ²μλ€μ μμκ³Ό λμ κ°κ° +1 -1μ΄ λμ΄μμΌλ―λ‘ κ·Έ μ¬μ΄μ μλ κ°μ
λμ λ κ°μΌλ‘ λ©λλ€.
ex) μλ₯Ό λ€λ©΄ μμ²μ Aκ° 2μ΄λΆν° 10μ΄κΉμ§ μ¬μνκ³ Bκ° 3μ΄λΆν° 7μ΄κΉμ§ μ¬μνλ€λ©΄
A = [0,0,1,0,0,0,0,0,0,0,-1] B = [0,0,0,1,0,0,0,-1]
λμ ν©μΉλ©΄ [0,0,1,1,0,0,0-1,0,0,-1] κ³Ό κ°μ΄ λ κ²μ λλ€.
κ·Έλ¦¬κ³ μ΄κ²μ μμ κ°μ΄ νμ¬ μΈλ±μ€ μ«μμ κ·Έ μ μ«μλ₯Ό ν©μ³μ£Όλ©΄
[0,0,1,2,2,2,2,1,1,1,0] μ κ°μ΄ λ κ²μ λλ€.
κ·Έλ¬λ©΄ μ νν Aμ Bκ° κ²ΉμΉ μκ°μ 3μ΄ ~7μ΄ μ¦ 4μ΄μ΄λ―λ‘ 3,4,5,6 μΈλ±μ€κ° 2λ‘ λμ΄μμ΅λλ€.
(μλ Source Codeμμ for i in 1...playTimeSeconds μ μ°Έκ³ ν΄μ£ΌμΈμ.)
5.0μ΄λΆν° κ΄κ³ μκ°κΉμ§ μ΄ νλ μ΄ μκ° λ°°μ΄μμ ν© κ΅¬ν΄μ£ΌκΈ°
0μ΄λΆν° κ΄κ³ λ₯Ό μμνμ κ²½μ°κ° κ°μ₯ μ΅μ μμμ΄λ―λ‘ 0μ΄λΆν° κ΄κ³ μκ°κΉμ§μ ν©μ κ΅¬ν΄ μ΅μμμμ ν©μ λ§λ€μ΄μ€λλ€.
(μλ Source Codeμμ sum λ³μλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
5.κ΄κ³ μκ°λΆν° μ΄ νλ μ΄μκ°κΉμ§ 1μ΄μ© μμ§μ΄λ©° κ°μ₯ μ΅λμ ν© κ΅¬ν΄μ£ΌκΈ°
0μ΄λΆν° κ΄κ³ μκ°κΉμ§ , 1μ΄λΆν° κ΄κ³ μκ°+1κΉμ§,2μ΄λΆν° κ΄κ³ μκ° +2κΉμ§....μ΄λ κ² νλ μ΄μκ°κΉμ§μ ν©μ ꡬν΄λκ°λ€ 보면
κ°μ₯ ν©μ΄ λμ ꡬκ°μ μ°Ύμ μ μμ΅λλ€.
ν¨μ¨μ±μ μν΄μ λͺ¨λ ν©μ ꡬν νμμμ΄ κ΅¬ν΄μ Έμλ ν©μμ κ°μ₯ 첫λ²μ§Έλ₯Ό λΉΌμ£Όκ³ κ°μ₯ λ§μ§λ§μ + 1λ²μ§Έ κ°μ λν΄μ£ΌκΈ°λ§ νλ©΄ λ©λλ€.
ex) 0μ΄λΆν° 10μ΄κΉμ§λΌλ©΄ κ·Έ λ€μ ꡬκ°μ 1μ΄λΆν° 11μ΄μ΄λ―λ‘ 0μ΄λ₯Ό λΉΌμ£Όκ³ 11μ΄λ₯Ό λν΄μ£Όλ©΄ κ·Έ λ€μλ²μ§Έ ν©μ΄ λ©λλ€.
(μλ Source Codeμμ for i in advTimeSeconds..<playTimeSecondsλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
μ£Όμν μ
μ΅λ 30λ§ μμ²μκ° μ΅λ 100μκ°κΉμ§ λͺ¨λ λ³Ό μ μμΌλ―λ‘ μ΄λ‘ κ³μ°νλ©΄ 36λ§ * 30λ§ = 1080μ΅μ΄ μ΅λκ° λ©λλ€.
Intν,Floatν λμ Doubleμ μ¬μ©ν΄μΌ ν©λλ€.
Source Code
P.S
μ²μμ λͺ¨λ λμ μ«μλ₯Ό ꡬνλ €κ³ ν λ λ‘κ·Έλ₯Ό μλμ κ°μ΄ ꡬνλλ ν 8κ° ν μ€νΈμΌμ΄μ€μμ μκ° μ΄κ³Όκ° λ¬λ€.
μΉ΄μΉ΄μ€ λΈλ‘κ·Έμμ λ¬Έμ νμ΄λ₯Ό λ³΄κ³ μμκ³Ό λμ +1μ ν΄μ£Όκ³ -1μ ν΄μ€ λ€ νμ¬μ κ·Έ μ μ«μλ₯Ό λν΄μ£Όλ©΄
κ° μ΄μ μμ²μλ€μ μλ₯Ό μ½κ² ꡬν μ μμλ€.
for log in logs {
let startEnd = splitPlaytime(playtime: log)
let start = makeSeconds(time: startEnd.0)
let end = makeSeconds(time: startEnd.1)
for i in start..<end {
allPlaySeconds[i] += 1
}
}
Reference
2021 μΉ΄μΉ΄μ€ μ μ κ³΅μ± 1μ°¨ μ¨λΌμΈ μ½λ© ν μ€νΈ for Tech developers λ¬Έμ ν΄μ€
μ§λ 2020λ 9μ 12μΌ ν μμΌ μ€ν 2μλΆν° 7μκΉμ§ 5μκ° λμ 2021 μΉ΄μΉ΄μ€ μ μ κ°λ°μ κ³΅μ± 1μ°¨ μ½λ© ν μ€νΈκ° μ§νλμμ΅λλ€. ν μ€νΈμλ μ΄ 7κ°μ λ¬Έμ κ° μΆμ λμμΌλ©°, κ°λ° μΈμ΄λ C++, Java, Jav
tech.kakao.com
'π Problem Solution' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] 2020 KAKAO INTERNSHIP ν€ν¨λ λλ₯΄κΈ° (0) | 2021.05.08 |
---|---|
[Swift] 2021 KAKAO BLIND RECRUITMENT μΉ΄λ μ§ λ§μΆκΈ° (1) | 2021.04.27 |
[Swift] λ°±μ€ whileλ¬Έ 1,2,3λ² (0) | 2020.02.01 |
λ°±μ€νλ‘κ·Έλλ° forλ¬Έ 10λ²,11λ² Swift (0) | 2020.01.29 |
λ°±μ€ νλ‘κ·Έλλ° forλ¬Έ 4,5,6,7λ² Swift (0) | 2020.01.21 |
λκΈ