SW개발/코딩테스트

[코드업 기초 100제]1096~1099 번 문제 풀이

1096번

a=int(input())
arr=[[0]*19 for i in range(19)] //이차원 배열 생성
for x in range(a) : //입력된 횟수 만큼 반복문 수행
    a, b = map(int, input().split()) //좌표 위치 저장
    arr[a-1][b-1]=1 //좌표 위치의 배열을 1로 할당, 배열 인덱스 0 부터 시작이라 -1씩 줌
    
for i in arr : //배열 만큼 반복
    for j in i : //리스트 안의 값을 뽑아냄
        print(j, end=' ')
    print() //줄바꿈

1097번

arr = [[0]*19 for x in range(19)] //이차원 배열 생성
for i in range(19) : //주어진 배열 input값 할당하는 반복문
    a = list(map(int, input().split())) //리스트 형태로 배열에 입력
    arr[i] = a
n = int(input()) //십자 뒤집는 횟수 저장
for i in range(n) : //뒤집는 횟수 만큼 반복
    x, y = map(int, input().split()) //뒤집는 좌표 값 할당
    for j in range(19) : //배열의 길이만큼 반복
        if arr[x-1][j] == 0 : arr[x-1][j] = 1 //세로줄 값 변경
        else : arr[x-1][j] = 0
        if arr[j][y-1] == 0 : arr[j][y-1] = 1 //가로줄 값 변경
        else : arr[j][y-1] = 0
        
for i in arr : //출력문
    for j in i :
        print(j, end=" ")
    print()

1098번

h, w = map(int, input().split()) //격자판 가로 세로 길이 할당
n = int(input()) //막대의 개수 할당
arr = [[0]*w for i in range(h)] //이차원 배열 생성(가로, 세로 길이만큼)
for i in range(n) : //막대 개수만큼 반복
    l, d, x, y = map(int, input().split()) //막대의 길이, 방향(가로/세로), 좌표 할당
    if d == 0 : //막대가 가로인 경우
        for a in range(l) : //막대의 길이 만큼 반복
            arr[x-1][y-1+a] = 1 //y값 증가하면서 막대의 길이 만큼 1 할당
    if d == 1 : //막대가 세로인 경우
        for b in range(l) :
            arr[x-1+b][y-1] = 1 //x값 증가하면서 막대의 길이 만큼 1 할당

for c in arr : //출력문
    for d in c :
        print(d, end=" ")
    print()

1099번

arr = []
x = 1 //시작 좌표 값 (1,1)
y = 1
for i in range(10) : //미로 상자 구조 배열에 할당
    a = list(map(int, input().split()))
    arr.append(a)
while(True) : //먹이를 찾거나 이동할 곳이 없을 때까지 반복
    if arr[x][y] == 2 : //먹이를 발견했을 경우
        arr[x][y] = 9 //먹이를 발견한 좌표를 9로 할당(이동 경로 표시)
        break //먹이를 발견한 경우 반복 종료
    elif arr[x+1][y]==1 and arr[x][y+1]==1 : //아래나 오른쪽 모두 이동 불가능 한 경우
        arr[x][y] = 9 //좌표를 9로 할당(이동 경로 표시)
        break //이동 불가능 하므로 반보 종료
    arr[x][y] = 9 //이동 경로 표시
    if arr[x][y+1] == 1 : //오른쪽으로 이동이 불가능 한 경우
        x+=1 //아래쪽으로 이동
    elif arr[x+1][y] == 1 : //아래쪽으로 이동이 불가능 한 경우
        y+=1 //오른쪽으로 이동
    else : y+=1 //기본적으로 오른쪽 길이 있을 경우 오른쪽으로 이동
for a in arr : //출력문
    for b in a :
        print(b, end=' ')
    print()
728x90