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

2020. 10. 1. 14:30·SW개발/코딩테스트

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

'SW개발 > 코딩테스트' 카테고리의 다른 글

[프로그래머스]타겟넘버-DFS/BFS  (0) 2020.11.19
[프로그래머스]체육복-그리디  (0) 2020.10.30
[코드업 기초 100제]1091~1095 번 문제 풀이  (0) 2020.09.30
[코드업 기초 100제]1086~1090 번 문제 풀이  (0) 2020.09.29
[코드업 기초 100제]1081~1085 번 문제 풀이  (0) 2020.09.28
'SW개발/코딩테스트' 카테고리의 다른 글
  • [프로그래머스]타겟넘버-DFS/BFS
  • [프로그래머스]체육복-그리디
  • [코드업 기초 100제]1091~1095 번 문제 풀이
  • [코드업 기초 100제]1086~1090 번 문제 풀이
Leffe_pt
Leffe_pt
개발자로서 성장하면서 배워온 지식과 경험을 공유하는 공간입니다.
  • Leffe_pt
    Leffe's tistory
    Leffe_pt
  • 전체
    오늘
    어제
    • 분류 전체보기 (309)
      • SW개발 (305)
        • 코딩테스트 (172)
        • 개발이야기 (23)
        • IT 용어 (17)
        • Python (22)
        • Django (46)
        • Flask (2)
        • Database (3)
        • SQLAlchemy (0)
        • Javascript (5)
        • Linux, Unix (3)
        • JAVA (2)
        • Spring (10)
      • 회고 (4)
      • 사진 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오픈소스
    배달비 공유
    배달
    플레이스토어
    음식
    어플리케이션
    트리 #AVL #알고리즘 #자료구조
    django
    배공파용
    g
    Contributor
    라이프 스타일
    컨트리뷰터
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Leffe_pt
[코드업 기초 100제]1096~1099 번 문제 풀이
상단으로

티스토리툴바