보물창고 블로그

SW Expert Academy 1210. [S/W 문제해결 기본] 2일차 - Ladder1 본문

알고리즘 풀이/SW Expert Academy

SW Expert Academy 1210. [S/W 문제해결 기본] 2일차 - Ladder1

홋 메 2020. 1. 28. 13:53
728x90

문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh&categoryId=AV14ABYKADACFAYh&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

이 문제는 while 문을 사용하여 해결하였는데, 왼쪽이나 오른쪽으로 움직일 수 있으면 움직이고, 아니면 계속 아래로 움직이도록 하였다. 다음은 나의 해결 코드이다. 

def check(x,y,map1):
    x=x
    y=y
    flag=0
    while(x<99):
        if -1<y-1 and map1[x][y-1]=='1' and flag==0:
            flag=1
            while(1):
                if y==0 or map1[x][y-1]=='0':
                    break
                else:
                    y-=1
        elif y+1<100 and map1[x][y+1]=='1' and flag==0:
            flag=1
            while(1):
                if y==99 or map1[x][y+1]=='0':
                    break
                else:
                    y+=1
        else:
            flag=0
            x+=1
    if map1[x][y]=='2':
        return True
    else:
        return False

for _ in range(10):
    t=int(input())
    map1=[]
    start=[]
    for _ in range(100):
        map1.append(input().split())
    for i in range(100):
        if map1[0][i]=='1':
            if check(0,i,map1)==True:
                print('#{} {}'.format(t,i))
Comments