[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๋ง์น ํ•˜๊ธฐ

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers โ”ƒ 2024. 3. 7. 20:19
๋ชฉ์ฐจ
  1. ๋ฌธ์ œ ์„ค๋ช…
  2. ๋ฌธ์ œ ํ’€์ด
  3. ๋‚˜์˜ ํ’€์ด

 

 

๐Ÿ„ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด

โœ๐Ÿป Github

๋ฌธ์ œ ํ’€์ด github ๋งํฌ

 

๋ฌธ์ œ ์„ค๋ช…

์–ด๋А ํ•™๊ต์— ํŽ˜์ธํŠธ๊ฐ€ ์น ํ•ด์ง„ ๊ธธ์ด๊ฐ€ n๋ฏธํ„ฐ์ธ ๋ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒฝ์— ๋™์•„๋ฆฌ ยท ํ•™ํšŒ ํ™๋ณด๋‚˜ ํšŒ์‚ฌ ์ฑ„์šฉ ๊ณต๊ณ  ํฌ์Šคํ„ฐ ๋“ฑ์„ ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ดํ”„๋กœ ๋ถ™์˜€๋‹ค๊ฐ€ ์ฒ ๊ฑฐํ•  ๋•Œ ๋–ผ๋Š” ์ผ์ด ๋งŽ๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ํŽ˜์ธํŠธ๊ฐ€ ๋ฒ—๊ฒจ์ง€๊ณค ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ธํŠธ๊ฐ€ ๋ฒ—๊ฒจ์ง„ ๋ฒฝ์ด ๋ณด๊ธฐ ํ‰ํ•ด์ ธ ํ•™๊ต๋Š” ๋ฒฝ์— ํŽ˜์ธํŠธ๋ฅผ ๋ง์น ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„“์€ ๋ฒฝ ์ „์ฒด์— ํŽ˜์ธํŠธ๋ฅผ ์ƒˆ๋กœ ์น ํ•˜๋Š” ๋Œ€์‹ , ๊ตฌ์—ญ์„ ๋‚˜๋ˆ„์–ด ์ผ๋ถ€๋งŒ ํŽ˜์ธํŠธ๋ฅผ ์ƒˆ๋กœ ์น  ํ•จ์œผ๋กœ์จ ์˜ˆ์‚ฐ์„ ์•„๋ผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ฒฝ์„ 1๋ฏธํ„ฐ ๊ธธ์ด์˜ ๊ตฌ์—ญ n๊ฐœ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๊ตฌ์—ญ์— ์™ผ์ชฝ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŽ˜์ธํŠธ๋ฅผ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•  ๊ตฌ์—ญ๋“ค์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒฝ์— ํŽ˜์ธํŠธ๋ฅผ ์น ํ•˜๋Š” ๋กค๋Ÿฌ์˜ ๊ธธ์ด๋Š” m๋ฏธํ„ฐ์ด๊ณ , ๋กค๋Ÿฌ๋กœ ๋ฒฝ์— ํŽ˜์ธํŠธ๋ฅผ ํ•œ ๋ฒˆ ์น ํ•˜๋Š” ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋กค๋Ÿฌ๊ฐ€ ๋ฒฝ์—์„œ ๋ฒ—์–ด๋‚˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ๊ตฌ์—ญ์˜ ์ผ๋ถ€๋ถ„๋งŒ ํฌํ•จ๋˜๋„๋ก ์น ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๋กค๋Ÿฌ์˜ ์ขŒ์šฐ์ธก ๋์„ ๊ตฌ์—ญ์˜ ๊ฒฝ๊ณ„์„  ํ˜น์€ ๋ฒฝ์˜ ์ขŒ์šฐ์ธก ๋๋ถ€๋ถ„์— ๋งž์ถ˜ ํ›„ ๋กค๋Ÿฌ๋ฅผ ์œ„์•„๋ž˜๋กœ ์›€์ง์ด๋ฉด์„œ ๋ฒฝ์„ ์น ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํŽ˜์ธํŠธ๋ฅผ ์น ํ•˜๋Š” ๊ตฌ์—ญ๋“ค์„ ์™„์ „ํžˆ ์น ํ•œ ํ›„ ๋ฒฝ์—์„œ ๋กค๋Ÿฌ๋ฅผ ๋–ผ๋ฉฐ, ์ด๋ฅผ ๋ฒฝ์„ ํ•œ ๋ฒˆ ์น ํ–ˆ๋‹ค๊ณ  ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ ๊ตฌ์—ญ์— ํŽ˜์ธํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์น ํ•ด๋„ ๋˜๊ณ  ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•  ๊ตฌ์—ญ์ด ์•„๋‹Œ ๊ณณ์— ํŽ˜์ธํŠธ๋ฅผ ์น ํ•ด๋„ ๋˜์ง€๋งŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ๋กœ ์ •ํ•œ ๊ตฌ์—ญ์€ ์ ์–ด๋„ ํ•œ ๋ฒˆ ํŽ˜์ธํŠธ์น ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‚ฐ์„ ์•„๋ผ๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ์น ํ•  ๊ตฌ์—ญ์„ ์ •ํ–ˆ๋“ฏ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋กค๋Ÿฌ๋กœ ํŽ˜์ธํŠธ์น ์„ ํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ •์ˆ˜ n, m๊ณผ ๋‹ค์‹œ ํŽ˜์ธํŠธ๋ฅผ ์น ํ•˜๊ธฐ๋กœ ์ •ํ•œ ๊ตฌ์—ญ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ์ •์ˆ˜ ๋ฐฐ์—ด section์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ๋กค๋Ÿฌ๋กœ ํŽ˜์ธํŠธ์น ํ•ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • 1 โ‰ค m โ‰ค n โ‰ค 100,000
  • 1 โ‰ค section์˜ ๊ธธ์ด โ‰ค n
    • 1 โ‰ค section์˜ ์›์†Œ โ‰ค n
    • section์˜ ์›์†Œ๋Š” ํŽ˜์ธํŠธ๋ฅผ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•˜๋Š” ๊ตฌ์—ญ์˜ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.
    • section์—์„œ ๊ฐ™์€ ์›์†Œ๊ฐ€ ๋‘ ๋ฒˆ ์ด์ƒ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • section์˜ ์›์†Œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

n m section result
8 4 [2, 3, 6] 2
5 4 [1, 3] 1
4 1 [1, 2, 3, 4] 4

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์˜ˆ์ œ 1๋ฒˆ์€ 2, 3, 6๋ฒˆ ์˜์—ญ์— ํŽ˜์ธํŠธ๋ฅผ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋กค๋Ÿฌ์˜ ๊ธธ์ด๊ฐ€ 4๋ฏธํ„ฐ์ด๋ฏ€๋กœ ํ•œ ๋ฒˆ์˜ ํŽ˜์ธํŠธ์น ์— ์—ฐ์†๋œ 4๊ฐœ์˜ ๊ตฌ์—ญ์„ ์น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์— 3, 4, 5, 6๋ฒˆ ์˜์—ญ์— ํŽ˜์ธํŠธ์น ์„ ํ•˜๋ฉด ์น ํ•ด์•ผ ํ•  ๊ณณ์œผ๋กœ 2๋ฒˆ ๊ตฌ์—ญ๋งŒ ๋‚จ๊ณ  1, 2, 3, 4๋ฒˆ ๊ตฌ์—ญ์— ํŽ˜์ธํŠธ์น ์„ ํ•˜๋ฉด 2๋ฒˆ ๋งŒ์— ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•  ๊ณณ์— ๋ชจ๋‘ ํŽ˜์ธํŠธ์น ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.2๋ฒˆ๋ณด๋‹ค ์ ์€ ํšŸ์ˆ˜๋กœ 2, 3, 6๋ฒˆ ์˜์—ญ์— ํŽ˜์ธํŠธ๋ฅผ ๋ง์น ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์†Œ ํšŸ์ˆ˜์ธ 2๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ์˜ˆ์ œ 2๋ฒˆ์€ 1, 3๋ฒˆ ์˜์—ญ์— ํŽ˜์ธํŠธ๋ฅผ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋กค๋Ÿฌ์˜ ๊ธธ์ด๊ฐ€ 4๋ฏธํ„ฐ์ด๋ฏ€๋กœ ํ•œ ๋ฒˆ์˜ ํŽ˜์ธํŠธ์น ์— ์—ฐ์†๋œ 4๊ฐœ์˜ ๊ตฌ์—ญ์„ ์น ํ•  ์ˆ˜ ์žˆ๊ณ  1, 2, 3, 4๋ฒˆ ์˜์—ญ์— ํŽ˜์ธํŠธ์น ์„ ํ•˜๋ฉด ํ•œ ๋ฒˆ์— 1, 3๋ฒˆ ์˜์—ญ์„ ๋ชจ๋‘ ์น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ ์ตœ์†Œ ํšŸ์ˆ˜์ธ 1์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ์˜ˆ์ œ 3๋ฒˆ์€ ๋ชจ๋“  ๊ตฌ์—ญ์— ํŽ˜์ธํŠธ์น ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋กค๋Ÿฌ์˜ ๊ธธ์ด๊ฐ€ 1๋ฏธํ„ฐ์ด๋ฏ€๋กœ ํ•œ ๋ฒˆ์— ํ•œ ๊ตฌ์—ญ๋ฐ–์— ์น ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ตฌ์—ญ์ด 4๊ฐœ์ด๋ฏ€๋กœ ๊ฐ ๊ตฌ์—ญ์„ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์น ํ•˜๋Š” 4๋ฒˆ์ด ์ตœ์†Œ ํšŸ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ 4๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

 


 

๋ฌธ์ œ ํ’€์ด

 

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


      
import Foundation
func solution(_ n:Int, _ m:Int, _ section:[Int]) -> Int {
// ํ˜„์žฌ ๋กค๋Ÿฌ์˜ ์œ„์น˜
var location: Int = 0
var count: Int = 0
for i in section {
// ๋กค๋Ÿฌ์˜ ์œ„์น˜๊ฐ€ ๋ฒฝ์„ ๋„˜์–ด์„œ๋ฉด ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ
if location > n {
break
}
// ๋ฒฝ์ด ์น ํ•ด์ง€์ง€ ์•Š์•˜๋‹ค๋ฉด ์‹คํ–‰
if i >= location {
location = i + m
count += 1
}
}
return count
}

ํ˜„์žฌ ๋กค๋Ÿฌ์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•ด ๋ฌธ์ œ๋ฅผ ํ’€๋ ค๊ณ  ํ•˜์˜€๋‹ค.

๋กค๋Ÿฌ์˜ ์œ„์น˜๊ฐ€ section์˜ ์š”์†Œ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•„์ง ์•ˆ์น ํ•ด์ง„ ๊ฒƒ์ด๊ณ , section์˜ ์š”์†Œ ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ด๋ฏธ ์น ํ•ด์ง„ ๋ฒฝ์ผ ๊ฒƒ์ด๋‹ค.

์ด๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์กฐ๊ธˆ ๋” ์ค„์ด๊ธฐ ์œ„ํ•ด ํ˜„์žฌ์˜ ์œ„์น˜๊ฐ€ ๋ฒฝ์˜ ๊ธธ์ด๋ฅผ ๋„˜์–ด๊ฐ„๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜์—ฌ ํ’€๋„๋ก ํ•˜์˜€๋‹ค.

์‹คํ–‰์‹œ๊ฐ„์€ n๊ฐ’๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์„ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋œ๋‹ค.

 

๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ?

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ ๋‚˜์™€์˜ ๋น„์Šทํ•œ ํ’€์ด ๋ฐฉ๋ฒ•์ด ๋งŽ์•˜๊ณ , ๋” ์ข‹์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ์ฝ”๋“œ๋Š” ์•„์ง ์ฐพ์ง€ ๋ชปํ•˜์˜€๋‹ค.

 

์ด๋ฏธ ํ•œ๋ฒˆ ํ’€์—ˆ๋˜ ๋ฌธ์ œ์ธ๋ฐ๋„ ์ด ๋ฌธ์ œ์˜ ํ’€์ด ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ์–ต์ด ์ „ํ˜€ ์—†์—ˆ๋‹ค.

๊ทธ๋Ÿผ ๋‚ด๊ฐ€ ์ „์— ํ’€์—ˆ๋˜ ํ’€์ด๋ฅผ ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์ž.


      
import Foundation
func solution(_ n:Int, _ m:Int, _ section:[Int]) -> Int {
var k = section[0] + m - 1
var count = 1
for i in section {
if i > k {
k = i + m - 1
count += 1
if k >= n {
break
}
}
}
return count
}

์•„์ฃผ ๋น„์Šทํ•˜์ง€๋งŒ, ํ˜„์žฌ์˜ ์œ„์น˜๊ฐ€ ๋ฒฝ์˜ ๊ธธ์ด๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์ฝ”๋“œ๋ฅผ ํ˜„์žฌ์˜ ์œ„์น˜๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ๋ฐ”๋กœ ์ ์‘ํ•˜์—ฌ ํ•œ๋ฒˆ์˜ ๋ฐ˜๋ณต๋ฌธ ์‹คํ–‰์„ ๋” ์ค„์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

 

 

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)
  1. ๋ฌธ์ œ ์„ค๋ช…
  2. ๋ฌธ์ œ ํ’€์ด
  3. ๋‚˜์˜ ํ’€์ด
'๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์ฒด์œก๋ณต
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์˜น์•Œ์ด(2)
  • [ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„
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 + /
โ‡ง + /

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