[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ] ์ฒด์œก๋ณต

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

 

 

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

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

โœ๐Ÿป Github

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

 

 

 

 

๋ฌธ์ œ ์„ค๋ช…

์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆํ˜ธ์˜ ํ•™์ƒ์ด๋‚˜ ๋ฐ”๋กœ ๋’ท๋ฒˆํ˜ธ์˜ ํ•™์ƒ์—๊ฒŒ๋งŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 4๋ฒˆ ํ•™์ƒ์€ 3๋ฒˆ ํ•™์ƒ์ด๋‚˜ 5๋ฒˆ ํ•™์ƒ์—๊ฒŒ๋งŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์œก๋ณต์ด ์—†์œผ๋ฉด ์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒด์œก๋ณต์„ ์ ์ ˆํžˆ ๋นŒ๋ ค ์ตœ๋Œ€ํ•œ ๋งŽ์€ ํ•™์ƒ์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ํ•™์ƒ์˜ ์ˆ˜ n, ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด lost, ์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด reserve๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ ์ตœ๋Œ“๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

 

 

์ œํ•œ์‚ฌํ•ญ

  • ์ „์ฒด ํ•™์ƒ์˜ ์ˆ˜๋Š” 2๋ช… ์ด์ƒ 30๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ n๋ช… ์ดํ•˜์ด๊ณ  ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ n๋ช… ์ดํ•˜์ด๊ณ  ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ๋งŒ ๋‹ค๋ฅธ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ด ํ•™์ƒ์€ ์ฒด์œก๋ณต์„ ํ•˜๋‚˜๋งŒ ๋„๋‚œ๋‹นํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉฐ, ๋‚จ์€ ์ฒด์œก๋ณต์ด ํ•˜๋‚˜์ด๊ธฐ์— ๋‹ค๋ฅธ ํ•™์ƒ์—๊ฒŒ๋Š” ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

 

์ž…์ถœ๋ ฅ ์˜ˆ

n lost reserve return
5 [2, 4] [1, 3, 5] 5
5 [2, 4] [3] 4
3 [3] [1] 2

 

 

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

์˜ˆ์ œ #1

1๋ฒˆ ํ•™์ƒ์ด 2๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๊ณ , 3๋ฒˆ ํ•™์ƒ์ด๋‚˜ 5๋ฒˆ ํ•™์ƒ์ด 4๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ฉด ํ•™์ƒ 5๋ช…์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ #2

3๋ฒˆ ํ•™์ƒ์ด 2๋ฒˆ ํ•™์ƒ์ด๋‚˜ 4๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ฉด ํ•™์ƒ 4๋ช…์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋ฌธ์ œ ํ’€์ด

 

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


      
import Foundation
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
var reserve = reserve.sorted()
var lost = lost.sorted()
// ์ฒด์œก๋ณต์ด ์—†๋Š” ํ•™์ƒ๋“ค ์นด์šดํŠธ
var count = lost.count
// lost์™€ reserve์˜ ์ค‘๋ณต๊ฐ’ ์ฐพ๊ธฐ
for (i, num) in lost.enumerated() {
if reserve.contains(num) {
count -= 1
lost[i] = -1
reserve[reserve.firstIndex(of: num)!] = -1
continue
}
}
for num in lost {
if num == -1 {
continue
}
if reserve.contains(num-1) {
count -= 1
reserve[reserve.firstIndex(of: num-1)!] = -1
continue
}
if reserve.contains(num+1) {
count -= 1
reserve[reserve.firstIndex(of: num+1)!] = -1
continue
}
}
return n - count
}

 

swift๋กœ๋Š” ์ฒ˜์Œ์œผ๋กœ ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

 

๊ทธ๋ฆฌ๋””๋ž€?

ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ง€๊ธˆ ๋‹น์žฅ ์ข‹์€ ๊ฒƒ๋งŒ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•

 

ํ’€์ด ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž.

์ฒ˜์Œ์— ์ƒ๊ฐํ•œ ๋ถ€๋ถ„์€ โ€˜์ „์ฒด ์นœ๊ตฌ๋“ค์˜ ์ˆ˜์—์„œ ์ฒด์œก๋ณต์„ ์ž…์ง€ ๋ชปํ•˜๋Š” ์นœ๊ตฌ๋“ค์˜ ์ˆ˜๋ฅผ ๋นผ์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค.โ€™์˜€๋‹ค.

์ฒด์œก๋ณต์„ ์ž…์ง€ ๋ชปํ•˜๋Š” ์นœ๊ตฌ๋“ค์˜ ์ˆซ์ž๋ฅผ ํ—ค์•„๋ฆฌ๋Š” ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ณด๋‹ค๊ฐ€.

reserve๋ฅผ for๋ฌธ์œผ๋กœ ๋„๋Š” ๊ฒƒ์ด ์•„๋‹Œ,

lost๋ฅผ for๋ฌธ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ฉฐ, ์ด ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ์™„๋ฒฝํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์œผ๋‚˜

 

 

ใ…‹.. 8์‹œ 8๋ถ„๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” ์˜ค๋‹ต ํ–‰๋ ฌ ๋ณด์ด์‹œ๋‚˜์š”..?

 

์ œ๊ฐ€ ๋†“์ณค๋˜ ๋ถ€๋ถ„์€ ๋”ฑ ๋‘ ๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ, โ€œ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ด ํ•™์ƒ์€ ์ฒด์œก๋ณต์„ ํ•˜๋‚˜๋งŒ ๋„๋‚œ๋‹นํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉฐ, ๋‚จ์€ ์ฒด์œก๋ณต์ด ํ•˜๋‚˜์ด๊ธฐ์— ๋‹ค๋ฅธ ํ•™์ƒ์—๊ฒŒ๋Š” ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. โ€œ

๋‘ ๋ฒˆ์งธ, reserve์™€ lost๋Š” ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค..!

 

์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ๋„๋‚œ๋‹นํ–ˆ๋‹ค๋Š” ๊ฑด์€ lost์™€ reserve ๋ฐฐ์—ด์— ์ค‘๋ณต๋˜๋Š” ์ˆซ์ž๊ฐ€ ์กด์žฌํ•œ๋‹ค์˜€์–ด์š”

์ด ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ €๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ธ์Šต๋‹ˆ๋‹ค.

 

๋‹ค๋ฅธ ๋ถ„๋“ค ์ค‘์— ์ด๋ ‡๊ฒŒ ๋˜‘๋˜‘ํ•˜๊ฒŒ filterํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ํ‘ธ์‹ ๋ถ„์ด ์žˆ๋”๋ผ๊ณ ์š”!


      
let newReserve = reserve.filter { !lost.contains($0) }
let newLost = lost.filter { !reserve.contains($0) }

๊ทผ๋ฐ, ์ด๋Ÿฌ๋ฉด lost๋ž‘ reserve ๋‘ ๋ฒˆ๋Œ๋ฆฌ๋Š” ๊ฑฐ๋ผ ์‹œ๊ฐ„์€ ๋น„์Šทํ•  ๋“ฏํ•˜๋„ค์š”!

 

์ •๋ ฌ์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ๋ถ€๋ถ„์€ ์–ด์ œ ์ •๋ฆฌํ•œ sort์™€ sorted ๊ฐœ๋…์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ ฌ์‹œ์ผœ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
  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 + /
โ‡ง + /

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