Post

์ธ์‚ฌ๊ณ ๊ณผ lv3

๐ŸŒˆ๋ฌธ์ œ ๋งํฌ

Desktop View

Desktop View

์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def solution(scores):
    answer = 0 # ์›ํ˜ธ์˜ ๋“ฑ์ˆ˜
    front, back = scores[0]
    total_score = front + back

    # ์ฒซ๋ฒˆ์งธ ์ ์ˆ˜์— ๋Œ€ํ•ด์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ, ๊ทธ๋ž˜์„œ -์‚ฌ์šฉ,
    # ์ฒซ ๋ฒˆ์งธ ์ ์ˆ˜๊ฐ€ ๊ฐ™์œผ๋ฉด ๋‘ ๋ฒˆ์งธ ์ ์ˆ˜์— ๋Œ€ํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ(๊ธฐ๋ณธํ˜•)์œผ๋กœ ์ •๋ ฌ
    scores.sort(key=lambda x: (-x[0], x[1]))
    
    # front ์ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœํ•˜๋ฉด ์ธ์„ผํ‹ฐ๋ธŒ๊ฐ€ ํ•ฉ์‚ฐ์ ์ˆ˜ ๋†’์€ ์ˆœ์œผ๋กœ ์ ˆ๋Œ€ ์•ˆ๋‚˜์˜จ๋‹ค.
		# ๊ทธ๋ž˜์„œ max_back ๋งŒ๋“ค์–ด ์คฌ๊ณ , ํ˜น์‹œ back์ด ์ตœ๊ณ ์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๊ณ 
		# total score์ธ ์›ํ˜ธ์ ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด ์›ํ˜ธ๊ฐ€ ๋“ฑ์ˆ˜ ๋’ค๋กœ ๋ฐ€๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ
    max_back = 0
    
		# ์›ํ˜ธ์ ์ˆ˜ [2,2]๋ฅผ ๊ฐ๊ฐ front, back์— ๊ณ ์ •ํ•ด์„œ ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ๋ฐ˜๋ณตํ•˜์—ฌ ๋น„๊ตํ•˜์—ฌ, ๋†’์œผ๋ฉด ๋“ฑ์ˆ˜ ์œ„๋กœ 
    for a, b in scores:
        if front < a and back < b:
            return -1
            

        if b >= max_back:
            max_back = b
            if a + b > total_score:
                answer += 1
            
		# ์›ํ˜ธ ์ž์‹ ์„ ํฌํ•จํ•œ ๋“ฑ์ˆ˜ ๋ฐ˜ํ™˜์ด๋ผ +1
    return answer + 1

ํ’€์ด

  • score ๋ฐฐ์—ด์˜ ์•ž์ž๋ฆฌ์ธ ๊ทผ๋ฌดํƒœ๋„ ์ ์ˆ˜๋ฅผ front, ๋’ท์ž๋ฆฌ์ธ ๋™๋ฃŒํ‰๊ฐ€ ์ ์ˆ˜๋ฅผ back์œผ๋กœ ์„ค์ •ํ•จ

    โ€”> 2๊ฐœ ๋”ํ•œ ๊ฒƒ์„ total_score

  • ๋ฌธ์ œ์—์„œ ์ ์ˆ˜ ๋†’์€ ์ˆœ์œผ๋กœ ์ธ์„ผํ‹ฐ๋ธŒ ์ค€๋‹คํ•˜๋‹ˆ ๋‹น์—ฐํžˆ ๋‚ด๋ฆผ์ฐจ์ˆœ!, ์•ž์˜ ์ ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋‘๋ฒˆ์งธ ์ ์ˆ˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ

  • ์™œ ์–ด์งธ์„œ! max_front๊ฐ€ ์•„๋‹ˆ๋ผ max_back์„ ์ผ๋Š”๊ฐ€???

    โ€”> scores = [[2,2],[1,4],[3,2],[3,2],[2,1]]์—ฌ๊ธฐ์„œ ์•ž์˜ ์ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœํ•˜๋ฉด ํ•ฉ์‚ฐํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋†’์€ ์‚ฌ๋žŒ๋„ ๋“ฑ์ˆ˜๊ฐ€ ๋‚ฎ์•„์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋’ท์ ์ˆ˜๊นŒ์ง€ ํ•ฉํ•œ๊ฒŒ ๋” ๋†’์€ ์ˆœ์œ„๊ฐ€ ๋  ์ˆ˜์žˆ๋„๋ก, ์ผ๋‹จ max_back ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์คŒ

  • ์›ํ˜ธ์ ์ˆ˜ [2,2]๋ฅผ ๊ฐ๊ฐ front, back์— ๊ณ ์ •ํ•ด์„œ ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ๋ฐ˜๋ณตํ•˜์—ฌ ๋น„๊ตํ•˜์—ฌ,

    ๋†’์œผ๋ฉด ๋“ฑ์ˆ˜ ์œ„๋กœ ๋ณด๋‚ด์ค„๊ฑฐ๋ผ return -1 ํ•จ

  • ๋ˆ„๊ตฐ๊ฐ€์˜ ๋™๋ฃŒํ‰๊ฐ€ ์ ์ˆ˜๊ฐ€ ๊ธฐ์กด ๋™๋ฃŒํ‰๊ฐ€ ์ ์ˆ˜๋ณด๋‹ค ๋†’๊ณ , (๊ทผ๋ฌดํƒœ๋„ + ๋™๋ฃŒํ‰๊ฐ€)๊ฐ€ ์›ํ˜ธ์˜ 2๊ฐœ ํ•ฉ์นœ ์ ์ˆ˜๋ณด๋‹ค ๋†’์œผ๋ฉด ์›ํ˜ธ๋Š” ๋“ฑ์ˆ˜ ๋น ๊พธ๋จน๊ณ  ๋‚ด๋ ค๊ฐ€์•ผํ•ด์„œ answer += 1 ์ ์—ˆ์Œ
  • ์›ํ˜ธ ์ž์‹ ์„ ํฌํ•จํ•œ ๋“ฑ์ˆ˜ ๋ฐ˜ํ™˜์ด๋ผ return answer +1

    ๋งŒ์•ฝ return answer๋งŒ ์ ์œผ๋ฉด ์›ํ˜ธ๋ฅผ ๋นผ๊ณ  ๋“ฑ์ˆ˜ ๋ฐ˜ํ™˜

๋‹ค๋ฅธ ์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def solution(scores):
    answer = 1 # 1๋ช…์˜ ๋“ฑ์ˆ˜๋ฅผ ์œ„ํ•ด ์ ์€ ๊ฒƒ
    wanho = scores[0]
    sum_wanho = wanho[0] + wanho[1]
    
		# ์•ž์ž๋ฆฌ ๋‚ด๋ฆผ์ฐจ์ˆœ, ๋’ท์ž๋ฆฌ ์˜ค๋ฆ„์ฐจ์ˆœ
    scores.sort(key = lambda x: (-x[0], x[1]))
    colleague_rating_score = 0
    for s in scores:
        if wanho[0] < s[0] and wanho[1] < s[1]:
            return -1
        if colleague_rating_score <= s[1]:
            if sum_wanho < s[0] + s[1]:
                answer += 1
            colleague_rating_score = s[1]
    return answer




์ฐธ๊ณ 

https://www.ai-bio.info/programmers/152995

https://cheon2308.tistory.com/entry/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Lv-3-ํŒŒ์ด์ฌ-์ธ์‚ฌ๊ณ ๊ณผ

This post is licensed under CC BY 4.0 by the author.
3D GIF