๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง

๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง 2022.04.12.ํ™”

by DevIseo 2022. 4. 12.

๋‘ ๋ฌธ์ œ๋Š” ๋น„์Šทํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ˜• ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์–ด๋ ค์› ์ง€๋งŒ for๋ฌธ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์ด๋‹ค.

2382.๋ฏธ์ƒ๋ฌผ ๊ฒฉ๋ฆฌ

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV597vbqAH0DFAVl 

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com

T = int(input())
for tc in range(1,T+1):
    N,M,K = map(int,input().split()) #์…€์˜๊ฐœ์ˆ˜,๊ฒฉ๋ฆฌ์‹œ๊ฐ„,๊ตฐ์ง‘๊ฐœ์ˆ˜
    arr = [list(map(int,input().split())) for _ in range(K)] #์„ธ๋กœ,๊ฐ€๋กœ,๋ฏธ์ƒ๋ฌผ์ˆ˜,์ด๋™๋ฐฉํ–ฅ
    dy,dx=(0,-1,1,0,0),(0,0,0,-1,1) #์›์ ,์ƒ,ํ•˜,์ขŒ,์šฐ
    opp = [0,2,1,4,3] #์›์ ,ํ•˜,์ƒ,์šฐ,์ขŒ

    for _ in range(M):
        for i in range(len(arr)):
            arr[i][0] = arr[i][0]+dy[arr[i][3]]
            arr[i][1] = arr[i][1]+dx[arr[i][3]]
            if arr[i][0] ==0 or arr[i][1] == 0 or arr[i][0]==N-1 or arr[i][1]==N-1:#๊ฒฝ๊ณ„
                arr[i][2]//=2
                arr[i][3]=opp[arr[i][3]]

        #์ •๋ ฌ(๋‚ด๋ฆผ์ฐจ์ˆœ)
        arr.sort(key=lambda x:(x[0],x[1],x[2]),reverse=True)

        i = 1 #๊ฐ™์€ ์ขŒํ‘œ(y,x)์ผ๋•Œ ํฐ ๋ฏธ์ƒ๋ฌผ๋กœ ํ•ฉ์น˜๊ธฐ
        while i<len(arr):
            if arr[i-1][0] == arr[i][0] and arr[i-1][1]==arr[i][1]: #์œ„์˜ ๋ฏธ์ƒ๋ฌผ๊ณผ ๋น„๊ต
                arr[i-1][2]+=arr[i][2]
                arr.pop(i) #ํ•ฉ์ณ์ง„๊ฑฐ ์—†์• ๊ธฐ
            else:
                i+=1

    ans=0
    for i in range(len(arr)):
        ans+=arr[i][2]

    print(f'#{tc} {ans}')

 

์›์ž์†Œ๋ฉธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRFInKex8DFAUo 

T = int(input())
for tc in range(1,T+1):
    N = int(input())
    arr=[list(map(int,input().split())) for _ in range(N)]
    dy, dx = (1, -1, 0, 0), (0, 0, -1, 1)

    #์ขŒํ‘œ์— *2
    for i in range(len(arr)):
        arr[i][0]*=2
        arr[i][1]*=2

    #์ขŒํ‘œ์ด๋™
    answer = 0
    for _ in range(4002):
        for i in range(len(arr)):
            arr[i][0] += dx[arr[i][2]]
            arr[i][1] += dy[arr[i][2]]

        #๊ฒน์น˜๋Š” ์ขŒํ‘œ ์‚ญ์ œํ›„๋ณด
        delete,visit = set(),set()
        for i in range(len(arr)):
            cx,cy = arr[i][0],arr[i][1]
            if (cx,cy) in visit: #์ด๋ฏธ ์žˆ๋‹ค๋ฉด
                delete.add((cx,cy)) #์‚ญ์ œ ํ›„๋ณด์— ์˜ฌ๋ฆฌ๊ธฐ
            visit.add((cx,cy))

        #์‚ญ์ œํ›„๋ณด ์‚ญ์ œ(๋’ค์—์„œ๋ถ€ํ„ฐ)
        for i in range(len(arr)-1,-1,-1):
            if (arr[i][0],arr[i][1]) in delete:
                answer+=arr[i][3]
                arr.pop(i)

    print(f'#{tc} {answer}')

 

 

๋Œ“๊ธ€