250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต level3 (๋‹จ์†์นด๋ฉ”๋ผ) ๋ณธ๋ฌธ

๐Ÿ“ Coding Test/Programmers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต level3 (๋‹จ์†์นด๋ฉ”๋ผ)

ใ…… ใ…œ ใ…” ใ…‡ 2023. 1. 23. 16:05
728x90

1. ๋ฌธ์ œ ์„ค๋ช…

๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ํ•œ ๋ฒˆ์€ ๋งŒ๋‚˜๋„๋ก ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ๊ฒฝ๋กœ routes๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ํ•œ ๋ฒˆ์€ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ๋งŒ๋‚˜๋„๋ก ํ•˜๋ ค๋ฉด ์ตœ์†Œ ๋ช‡ ๋Œ€์˜ ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

 

 

 

 

2. ์ œํ•œ์‚ฌํ•ญ

  • ์ฐจ๋Ÿ‰์˜ ๋Œ€์ˆ˜๋Š” 1๋Œ€ ์ด์ƒ 10,000๋Œ€ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • routes์—๋Š” ์ฐจ๋Ÿ‰์˜ ์ด๋™ ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ routes[i][0]์—๋Š” i๋ฒˆ์งธ ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ์— ์ง„์ž…ํ•œ ์ง€์ , routes[i][1]์—๋Š” i๋ฒˆ์งธ ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ์—์„œ ๋‚˜๊ฐ„ ์ง€์ ์ด ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐจ๋Ÿ‰์˜ ์ง„์ž…/์ง„์ถœ ์ง€์ ์— ์นด๋ฉ”๋ผ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด๋„ ์นด๋ฉ”๋ผ๋ฅผ ๋งŒ๋‚œ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
  • ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ์ง€์ , ์ง„์ถœ ์ง€์ ์€ -30,000 ์ด์ƒ 30,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

 

3. ๋‚ด ํ’€์ด

def solution(routes):
    answer = 0
    routes.sort(key=lambda x:(x[1],x[0]))
    a = -30001
    for route in routes:
        if a < route[0]:
            answer += 1
            a = route[1]
    return answer

 

1. ์ฐจ๋Ÿ‰์„ ๊ณ ์†๋„๋กœ์—์„œ ๋‚˜๊ฐ„ ์‹œ์ ๋ถ€ํ„ฐ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ

2. ์ œํ•œ ์‚ฌํ•ญ์— ์ตœ์†Œ ์ง„์ž… ์ง€์ ์ด -30000์ด๋ฏ€๋กœ ์ตœ์ดˆ ์นด๋ฉ”๋ผ ์œ„์น˜๋Š” -30001๋กœ ์„ค์ •

3. for ๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ฐจ๋Ÿ‰์˜ ์ง„์ž…์ง€์ ์ด ์นด๋ฉ”๋ผ ์œ„์น˜๋ณด๋‹ค ํฌ๋ฉด ์นด๋ฉ”๋ผ ์ˆ˜ +1 ํ•œ ๋’ค, ์นด๋ฉ”๋ผ ์œ„์น˜๋Š” ๋‚˜๊ฐ„ ์‹œ์ ์œผ๋กœ ์žฌ์„ค์ •

 

 

 

 

 

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

def solution(routes):
    answer = 0
    routes.sort(key=lambda x: x[0], reverse=True) 
    camera = 30001 
    for route in routes:
        if camera > route[1]:
            answer += 1
            camera = route[0]
    return answer

 

 

 

def solution(routes):
    routes.sort()
    length=len(routes)
    count=0
    cam=[0]*length
    camera=0
    for i in range(length-1,-1,-1):
        if cam[i]==0:
            camera=routes[i][0]#์ง„์ž… ์ง€์ 
            count+=1
        for j in range(i,-1,-1):
            if cam[j]==0 and routes[j][1]>=camera:#์ด์ „ ์ง„์ž…์ (camera)์ด ํ˜„์žฌ ์ง„์ถœ์ ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด ์นด๋ฉ”๋ผ ์„ค์น˜
                cam[j]=1 #์นด๋ฉ”๋ผ๊ฐ€ ๊ตฌ๊ฐ„์„ ์ปค๋ฒ„ํ•จ
    return count
728x90
Comments