Algorithm Problem/Python

[python] SWEA - 1225. [S/W ๋ฌธ์ œํ•ด๊ฒฐ ๊ธฐ๋ณธ] 7์ผ์ฐจ - ์•”ํ˜ธ์ƒ์„ฑ๊ธฐ

deo2kim 2022. 3. 22. 22:56
๋ฐ˜์‘ํ˜•

 

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • ์ˆซ์ž๊ฐ€ ํด ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์–ด์„œ while๋ฌธ์„ ๊ณ„์† ๋Œ๋ฆฌ๊ธฐ๋ณด๋‹จ ๊ทœ์น™์„ ์ฐพ์•„์„œ ๋ฏธ๋ฆฌ ํ•œ๋ฒˆ์— ๋นผ์ฃผ๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ๋Œ๋ ธ๋‹ค.
  • 5์‹ธ์ดํด ๋งˆ๋‹ค ์ „์ฒด ์ˆซ์ž์— -15 ์”ฉ ํ•˜๊ฒŒ ๋œ๋‹ค. (๋ชจ๋“  ์ˆ˜ ๋™์ผํ•˜๊ฒŒ)
  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฃผ์–ด์ง„ ์ˆซ์ž ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ 15๋กœ ๋‚˜๋ˆ  ๋ชซ์„ ๊ตฌํ•˜๊ณ  ๋ชจ๋“  ์ˆซ์ž์—์„œ 15 * ๋ชซ ๋งŒํผ ๋นผ์ค€๋‹ค.
  • ๊ทธ ๋‹ค์Œ ์‹ธ์ดํด์„ ๋Œ๋ ค์ฃผ๋ฉด while 5๋ฒˆ ์ด๋‚ด๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ

 

๐Ÿ’จ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค 2๋ฒˆ์—์„œ ๋‹ต์ด ํ‹€๋ ธ๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š” ๋”ฑ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ

๊ทธ๋Ÿด ๋• ๋ชซ์—์„œ -1 ํ•ด์ค€๋‹ค์Œ ์ง„ํ–‰ํ•˜๋ฉด ํ•ด๊ฒฐ๐Ÿ‘ต

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

 T = 10
for t in range(1, T + 1):
    input()
    answer = []
    input_list = list(map(int, input().strip().split(' ')))

    min_num = min(input_list)
    mok = min_num // 15

    # ๋ฐ”๋กœ 0 ์ด ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ (2๋ฒˆ ์ผ€์ด์Šค)
    if mok * 15 == min_num:
        mok -= 1

    input_list = list(map(lambda x: x - 15 * mok, input_list))

    # ๋’ค๋กœ ์•ˆ๋ณด๋‚ด๊ณ  ๋งˆ์ง€๋ง‰์— ๋ฐ”๊ฟ”์ฃผ๊ธฐ
    idx = 0
    cnt = 0
    while True:
        idx %= 8
        cnt = cnt % 5 + 1
        input_list[idx] -= cnt
        # ์ข…๋ฃŒ
        if input_list[idx] <= 0:
            # ์Œ์ˆ˜๊ฐ€ ๋œ ์ˆ˜๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ 
            input_list[idx] = 0
            # ์œ„์น˜๋ฅผ ์˜ฎ๊ฒจ์ค€๋‹ค.
            answer = input_list[idx + 1:] + input_list[:idx + 1]
            print(f'#{t} {" ".join(list(map(str, answer)))}')
            break

        idx += 1

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: SW Expert Academy

๋ฐ˜์‘ํ˜•