[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers โ”ƒ 2024. 4. 19. 19:45
๋ชฉ์ฐจ
  1. ๋ฌธ์ œ ์„ค๋ช…
  2. ๋ฌธ์ œ ํ’€์ด
  3. ๋‚˜์˜ ํ’€์ด
  4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
  5. ์ค‘์š”ํ•œ ๊ฐœ๋…

 

 

๐Ÿ„ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ ๋งํฌ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

โœ๐Ÿป ๋ฌธ์ œ ํ’€์ด Github ๋งํฌ

 

-Swift-CodingTest/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/2/42586.โ€…๊ธฐ๋Šฅ๊ฐœ๋ฐœ at main ยท BaeJihae/-Swift-CodingTest

Swift๋กœ ํ‘ผ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. Contribute to BaeJihae/-Swift-CodingTest development by creating an account on GitHub.

github.com

 

 

๋ฌธ์ œ ์„ค๋ช…

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ๋ณด๋‹ค ๋จผ์ € ๊ฐœ๋ฐœ๋  ์ˆ˜ ์žˆ๊ณ , ์ด๋•Œ ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋  ๋•Œ ํ•จ๊ป˜ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๋จผ์ € ๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์˜ ์ง„๋„๊ฐ€ ์ ํžŒ ์ •์ˆ˜ ๋ฐฐ์—ด progresses์™€ ๊ฐ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ์ ํžŒ ์ •์ˆ˜ ๋ฐฐ์—ด speeds๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๊ฐ ๋ฐฐํฌ๋งˆ๋‹ค ๋ช‡ ๊ฐœ์˜ ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋˜๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

 

 

์ œํ•œ ์‚ฌํ•ญ

  • ์ž‘์—…์˜ ๊ฐœ์ˆ˜(progresses, speeds๋ฐฐ์—ด์˜ ๊ธธ์ด)๋Š” 100๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ž‘์—… ์ง„๋„๋Š” 100 ๋ฏธ๋งŒ์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ž‘์—… ์†๋„๋Š” 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ๋Š” ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ๋งŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜๋ฃจ์˜ ๋์— ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง„๋„์œจ์ด 95%์ธ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ํ•˜๋ฃจ์— 4%๋ผ๋ฉด ๋ฐฐํฌ๋Š” 2์ผ ๋’ค์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

 

์ž…์ถœ๋ ฅ ์˜ˆ

progresses speeds return
[93, 30, 55] [1, 30, 5] [2, 1]
[95, 90, 99, 99, 80, 99] [1, 1, 1, 1, 1, 1] [1, 3, 2]

 

 

 

๋ฌธ์ œ ํ’€์ด

 

๋‚˜์˜ ํ’€์ด


      
import Foundation
func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] {
var numberOfRemaining = zip(progresses, speeds).map{ Int(ceil(Double(100 - $0) / Double($1))) }
numberOfRemaining.append(100)
var answer = [Int]()
var a = numberOfRemaining[0]
var count = 0
for i in numberOfRemaining {
if a >= i {
count += 1
}else {
answer.append(count)
a = i
count = 1
}
}
return answer
}

 

์‚ฌ์‹ค ๊ธฐ๊ฐ€๋ง‰ํžˆ๊ฒŒ ์ž˜ ํ’€์—ˆ๋‹ค๊ณ ๋Š” ๋Œ€๋‹ตํ•˜์ง€ ๋ชปํ•  ํ’€์ด์ธ๊ฑฐ ๊ฐ™๋‹ค.

๋‚ด ์Šค์Šค๋กœ๋„ ๋ณต์žกํ•˜๊ฒŒ ํ’€์—ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋‹ต์„ ๋‚ด๊ธฐ ์œ„ํ•ด ๋ผ์–ด๋งž์ถ”๋“ฏ์ด 100์ด๋ผ๋Š” ์ˆซ์ž๋ฅผ ๋ฐฐ์—ด์— ๋งจ๋์— ์ถ”๊ฐ€ํ•˜์˜€๊ณ ,

a๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด count๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ๋ฐ˜๋Œ€๋ฉด์€ ํ•ด๋‹น count๋ฅผ ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ง๊ด€์ ์œผ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ numberOfRemaining ๋ฐฐ์—ด์„ ๊ตฌํ•œ ๋ถ€๋ถ„์€ ์•„์ฃผ ์ž˜ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด


      
import Foundation
func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] {
return zip(progresses, speeds)
.map { (100 - $0) / $1 }
.reduce(([], 0)) { (tuple, day) -> ([Int], Int) in
let (list, lastMax) = tuple
guard let lastCount = list.last else {
return ([1], day)
}
if lastMax >= day {
return (list.dropLast() + [lastCount + 1], lastMax)
}
return (list + [1], day)
}.0
}

 

๋‚ด๊ฐ€ ๋จธ๋ฆฟ์†์œผ๋กœ ํ’€๊ณ  ์‹ถ์—ˆ๋˜ ํ’€์ด์ด๋‹ค.

ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” reduce์˜ ํด๋กœ์ € ํ•จ์ˆ˜์— ๊ฐ‡ํ˜€์„œ ํ’€์–ด๋‚ด์ง€ ๋ชปํ•˜์˜€๋‹ค.

tuple๋กœ ํ’€์–ด๋ƒ„์— ๊ฐํƒ„ํ•˜๊ณ , ๋˜ ๊ฐํƒ„ํ–ˆ๋‹ค. reduce ํ•จ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฑฐ๊ตฌ๋‚˜..?

 

 

์ค‘์š”ํ•œ ๊ฐœ๋…

  • ๋ฐ˜์˜ฌ๋ฆผ - round
  • ์˜ฌ๋ฆผ - ceil
  • ๋‚ด๋ฆผ - floor
  • ๋ฒ„๋ฆผ - trunc
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
  1. ๋ฌธ์ œ ์„ค๋ช…
  2. ๋ฌธ์ œ ํ’€์ด
  3. ๋‚˜์˜ ํ’€์ด
  4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
  5. ์ค‘์š”ํ•œ ๊ฐœ๋…
'๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ํƒ€๊ฒŸ ๋„˜๋ฒ„
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ํ”ผ๋กœ๋„
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ํ• ์ธ ํ–‰์‚ฌ
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์˜์ƒ
EarthSea
EarthSea
์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ์งธ์ž…๋‹ˆ๋‹ค ๐ŸŒฑ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๊ธ€์“ฐ๊ธฐ
EarthSea
EarthSea's Log๐ŸŒ
EarthSea

๊ณต์ง€์‚ฌํ•ญ

  • EarthSea's Introduce
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • โœ๏ธ TIL
    • ๐Ÿ“‘ Project
    • ๐Ÿ“’ Study
      • ๐ŸŒ React
      • ๐Ÿšฉ Swift
      • ๐Ÿ“ UIKit
      • ๐Ÿ–ค Git
      • ๐Ÿฉต Python
    • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test
      • โŒจ๏ธ Programmers
      • ๐Ÿ–Œ๏ธ BAEKJOON
    • ๐ŸŽ† SSAFY
    • ๐ŸŽ Apple
    • ๐Ÿท๏ธ Tistory
    • ์˜ค๋กฏ์ด ๋‚˜์˜ ์‹œ๊ฐ„
Total
Today
Yesterday
hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.2
EarthSea
[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.