๐Ÿ“š Study/Baekjoon

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv1 | ์™„์ „ํƒ์ƒ‰ | ์ตœ์†Œ์ง์‚ฌ๊ฐํ˜•

์œฐ๊ฐฑ 2026. 3. 31. 21:30

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

 

 

 

๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ–ˆ๋˜ ๋ฌธ์ œ์˜€๋Š”๋ฐ ๋‚˜ ๋ญํ•œ๊ฑฐ์ง€..? omg

๊ฐ€๋กœ๊ฐ€ ํ•ญ์ƒ ๊ธธ๊ณ  ์„ธ๋กœ๊ฐ€ ํ•ญ์ƒ ์งง์„ ์ˆ˜ ์žˆ๋„๋ก ์„ธํŒ…ํ•˜๊ณ  ๋ช…ํ•จ ํ•˜๋‚˜์”ฉ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด ๋จ

 

 

def solution(sizes):
    max_w, max_h = -1, -1
    for size in sizes:
        w, h = max(size[0],size[1]), min(size[0],size[1])
        max_w = max(max_w,w)
        max_h = max(max_h,h)
    return max_w*max_h

 


์ด์ƒํ•œ ํ’€์ด ๊ณผ์ •..

def return_min(final_w, final_h, w, h):
    # if final_w < w and final_h < h ์ธ ๊ฒฝ์šฐ --> ๊ฐ€๋กœ ์„ธ๋กœ ๊ทธ๋ƒฅ ํ™•์žฅ
    # (20,30) / (40,25)
    if final_w < w and final_h < h:
        return (w, h)
    
    # elif final_w < w ์ธ ๊ฒฝ์šฐ
    elif final_w < w:
        
    
    # elif final_h < h ์ธ ๊ฒฝ์šฐ
    
    
    
def solution(sizes):
    # ๋ช…ํ•จ ๋ฒˆํ˜ธ 1์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ
    # ์•ˆ๋˜๋Š” ์• ๋“ค์€ ๋”ฐ๋กœ ์ €์žฅํ•ด๋†“๊ณ  ํ•˜๋‚˜์”ฉ ์ ๊ฒ€ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ํ™•์žฅํ•˜๊ธฐ
    # ex. 
    # STEP1
    # (60, 50)์ผ ๋•Œ
    # ๋ช…ํ•จ๋ฒˆํ˜ธ 2์˜ (30,70) --> ์‹คํŒจ --> ์ €์žฅ
    # ๋ช…ํ•จ๋ฒˆํ˜ธ 3์˜ (60,30) --> ์„ฑ๊ณต
    # ๋ช…ํ•จ๋ฒˆํ˜ธ 4์˜ (80,40) --> ์‹คํŒจ --> ์ €์žฅ
    # STEP2 ๋„“ํžˆ๊ธฐ
    # (60,50)๊ณผ (30,70) ๋น„๊ต --> (70,50)
    # (70,50)๊ณผ (80,40) ๋น„๊ต --> (80,50)
    
    failure_cases = []
    final_w, final_h = sizes[0][0], sizes[0][1]
    
    # STEP1
    for i in range(1,len(sizes)):
        curr_w, curr_h = sizes[i][0], sizes[i][1]
        if not ((curr_w <= final_w and curr_h <= final_h) or (curr_w <= final_h and curr_h <= final_w)): # ๊ทธ๋Œ€๋กœ or ๋ˆ•ํ˜€์„œ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†์„ ๋•Œ
            failure_cases.append(sizes[i])
            
    # STEP2
    for i in range(len(failure_cases)):
        print(final_w, final_h)
        
        
    return final_w*final_h