๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฒน์น˜๋Š” ์„ ๋ถ„์˜ ๊ธธ์ด

by syLim___ 2023. 3. 4.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/120876

 

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

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

programmers.co.kr


์ œ์ถœํ•œ ์ฝ”๋“œ

def solution(lines):
    points = [0]*201
    
    for i in lines:
        x1, x2 = i[0]+100, i[1]+100
        for j in range(x1,x2):
            points[j] += 1

    answer = 0
    for i in points:
        if i >= 2:
            answer += 1

    return answer

ํ’€์ด ์š”์•ฝ

1. -100๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ์ ์„ ๋‹ด์„ ํฌ๊ธฐ 201์งœ๋ฆฌ ๋ฐฐ์—ด points๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

2. ๊ฐ๊ฐ์˜ ์„ ๋ถ„์ด ์ง€๋‚˜๊ฐ€๋Š” ์ ์„ ํ‘œ์‹œํ•ด์ค€๋‹ค: ๋ฐฐ์—ด์˜ (์‹œ์ž‘์ +100) ~ (๋์ +100)-1 ๋ฒˆ์งธ ์นธ์— 1์”ฉ ๋”ํ•ด์ฃผ๊ธฐ

3. ๋ฐฐ์—ด ๊ฐ’์ด 2๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ์„ ๋ถ„์ด 2๊ฐœ ์ด์ƒ ๊ทธ ์ ์„ ์ง€๋‚˜๊ฐ”๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด๋‹ค --> ์ด๋Ÿฌํ•œ ์ ๋“ค์„ ์นด์šดํŠธํ•˜์—ฌ ๋ฆฌํ„ด.

 


์ œ์ถœํ•˜๊ณ  ๋‹ค๋ฅธ ๋ถ„๋“ค ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ์ง‘ํ•ฉ์œผ๋กœ ํ‘ผ ์‚ฌ๋žŒ๋“ค๋„ ์•„์ฃผ ๋งŽ์•˜๋‹ค.

๊ฐ ์„ ๋ถ„์ด ์ง€๋‚˜๊ฐ€๋Š” ์ ๋“ค์„ ๊ฐ๊ฐ ์ง‘ํ•ฉ์— ์ €์žฅํ•˜๊ณ , ๊ต์ง‘ํ•ฉ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ๋ฆฌํ„ด.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ์ฝ”๋“œ๋Š” ๋‹ค ๊ฐ„๋‹จํ•˜๊ณ  ๋ฉ‹์ง„๊ฒƒ๊ฐ™๋‹ค.


์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” ๊ณ ๋ฏผํ•œ ํ”์ ๋“ค ๊ธฐ๋ก.

 

์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ ์•„์ด๋””์–ด

 

1. lines์—์„œ ์ตœ์†Œ, ์ตœ๋Œ€๊ฐ’ minVal, maxVal์„ ๊ฐ๊ฐ ์ฐพ๋Š”๋‹ค

 arr[0] arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] arr[7]
minVal minVal+1 minVal+2 minVal+3 minVal+4 minVal+5 minVal+6 minVal+7

์ด๋ ‡๊ฒŒ minVal ~ maxVal๊นŒ์ง€ ์ˆซ์ž๋“ค์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.

 

2. ๊ฐ ์„ ๋ถ„์ด ํ•ด๋‹น ์นธ(์ )์„ ์ง€๋‚˜๊ฐ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฒ˜์Œ (์‹œ์ž‘์ +1)~๋์ ๊นŒ์ง€ arr์— 1์„ ๋”ํ•ด์ค€๋‹ค.

 -์˜ˆ์‹œ. minVal=-1์ด๊ณ , [-1,3] ์„ ๋ถ„ ํ‘œํ˜„

arr[0] (์  -1์— ํ•ด๋‹น) arr[1] (์  0์— ํ•ด๋‹น) arr[2] (์  1์— ํ•ด๋‹น) arr[3] (์  2์— ํ•ด๋‹น) arr[4] (์  3์— ํ•ด๋‹น)
0 1 1 1 1

 -->์„ ๋ถ„ ๊ธธ์ด: 4

 

3. 3๊ฐœ์˜ ์„ ๋ถ„์— ๋Œ€ํ•ด ๊ฐ๊ฐ 2๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์„ ๋ถ„์ด ๊ฒน์น˜๋Š” ์ ์˜ ๋ฐฐ์—ด ๊ฐ’์€ 2 ์ด์ƒ์ผ ๊ฒƒ์ด๋‹ค.

    ๋ฐฐ์—ด ๊ฐ’์ด 2๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฐ ์ ๋“ค์„ ๋ชจ๋‘ ์นด์šดํŠธํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋‹ˆ๊นŒ ๋ฐฐ์—ด ํฌ๊ธฐ์™€ ์ธ๋ฑ์Šค๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ์ž๊พธ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๊ณ ,

์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ๋‚ด๊ฐ€ ์งฐ๋Š”๋ฐ๋„ ์ธ๋ฑ์Šค ์„ธ๋Š” ๊ฒŒ ์ž๊พธ ํ—ท๊ฐˆ๋ ธ์Œ.

 

๋งˆ์ด๋„ˆ์Šค ์ขŒํ‘œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋‚˜ ํ•˜๋‹ค๊ฐ€ ์ œ์ผ ์ž‘์€ ์ขŒํ‘œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์ฒ˜์Œ ๊ฐ’์œผ๋กœ ๋‘์ž ์ƒ๊ฐํ–ˆ๋˜ ๊ฑฐ์˜€๋Š”๋ฐ,

 

๊ณ ๋ฏผํ•˜๋‹ค๋ณด๋‹ˆ๊นŒ ์กฐ๊ธˆ ๋” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค.

 

์ฃผ์–ด์ง€๋Š” ์ ์˜ ๋ฒ”์œ„๋Š” -100๋ถ€ํ„ฐ 100๊นŒ์ง€๋‹ˆ๊นŒ,

์ฒ˜์Œ๋ถ€ํ„ฐ ํฌ๊ธฐ 201์งœ๋ฆฌ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด๋†“๊ณ , ์ˆซ์ž๋ฅผ ์ „๋ถ€ ๋‹ค 100์”ฉ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ€์–ด์„œ ์นด์šดํŠธํ•˜๋ฉด ๋œ๋‹ค.

arr[0] arr[1] arr[2] ... arr[100] ... arr[201]
์  -100์— ํ•ด๋‹น ์   -99์— ํ•ด๋‹น ์  -98์— ํ•ด๋‹น ... ์  0์— ํ•ด๋‹น ... ์  100์— ํ•ด๋‹น

 

์ฆ‰, ์ขŒํ‘œ๋ฅผ ์ด๋ ‡๊ฒŒ 100์”ฉ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ€์–ด์„œ ์˜ฎ๊ฒจ๋†“๊ณ ,

ํŽธํ•˜๊ฒŒ ์นด์šดํŠธํ•˜๋ฉด ๋˜๋Š”๊ฑฐ์˜€๋‹น..... ^^...

 

์–ด์ฐจํ”ผ ์ฃผ์–ด์ง„ a,b๊ฐ’์ด -100์—์„œ 100์œผ๋กœ ๋งค์šฐ ์ž‘์€ ์ˆซ์ž๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์—

minVal, maxVal ์ฐพ๊ณ  ์•ˆ ๋Œ์•„๊ฐ€๋Š” ๋จธ๋ฆฌ๋กœ ์ธ๋ฑ์Šค ์„ค์ •ํ•˜๋ฉด์„œ ์‹œ๊ฐ„ ๋‚ญ๋น„ ํ•˜๋Š”๊ฒƒ๋ณด๋‹ค

๋งˆ์ด๋„ˆ์Šค ์ขŒํ‘œ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ๋ฒˆ์— ๋ฐ€์–ด๋ฒ„๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

728x90