반응형

1099 : [기초-2차원배열] 성실한 개미

 

엑셀로 이동 경로를 예상하면서 코딩하니까 편했습니다.

코드를 계속 수정하면 조금 더 좋은 결과가 나올 것 같습니다.

 

# -*- Encoding:UTF-8 -*- #

# 배경 준비
background = [
    [0 for cols in range(10)]
    for widths in range(10)
]

# 배경 input
for i in range(10):
    num = input().split()
    background[i] = list(map(int, num))


# 개미 집
startPoint = (1, 1)

# 현재 좌표
point = [0, 0]
point[0] = startPoint[0]
point[1] = startPoint[1]

# 현재 상태
status = 0

while status != 2:
    # print('현재 좌표 x = ', point[0], 'y=', point[1])
    # print('현재 값 = ', background[point[0]][point[1]], '\n')

    # 확인
    if background[point[0]][point[1]] == 2:
        status = 2
        background[point[0]][point[1]] = 9
    else:
        # 경로 표시
        background[point[0]][point[1]] = 9

        # 경로 이동
        if background[point[0]][point[1]+1] != 1:
            point[1] = point[1]+1
            # print(point[1])
        else:
            point[0] = point[0] + 1
            # print(point[0])

        # 유효성
        if point[0] > 8:
            point[0] = 8
            break;
        if point[1] > 8:
            point = 8
            break;


# 배경 출력 output
for i in range(10):
    for j in range(10):
        print(background[i][j], end=' ')
    print()

 

반응형
반응형

1098 : [기초-2차원배열] 설탕과자 뽑기

https://codeup.kr/problem.php?id=1098

 

# -*- Encoding:UTF-8 -*- #

'''
input()
1) 바둑판 x,y
2) 막대 개수
3) 길이 방향 좌표

첫 줄에 격자판의 세로(h), 가로(w) 가 공백을 두고 입력되고,
두 번째 줄에 놓을 수 있는 막대의 개수(n)
세 번째 줄부터 각 막대의 길이(l), 방향(d), 좌표(x, y)가 입력된다.
방향(d) 가로:0 세로1

'''

# 바둑판 input()
scan = input().split()
xy = list(map(int, scan))

# 바둑판 초기화
board = [
    [0 for cols in range(xy[1])]
    for width in range(xy[0])
]

# 막대개수
repeat = int(input())

# 막대놓기
for i in range(repeat):
    scan = input().split()
    stick = list(map(int, scan))

    # 가로 놓기
    if stick[1] == 0:
        for j in range(stick[0]):
            x = stick[2] - 1
            y = stick[3] - 1
            board[x][y+j] = 1

    # 세로 놓기
    if stick[1] == 1:
        for j in range(stick[0]):
            x = stick[2] - 1
            y = stick[3] - 1
            board[x + j][y] = 1

# 바둑판 출력
for i in range(xy[0]):
    for j in range(xy[1]):
        print(board[i][j], end=' ')
    print()

 

반응형
반응형

1097 : [기초-2차원배열] 바둑알 십자 뒤집기(설명)

# -*- Encoding:UTF-8 -*- #

# 바둑판 준비
board = [
    [0 for i in range(20)]
    for j in range(20)
]

# 바둑판 input
for i in range(0, 19):
    num = input().split()
    board[i] = list(map(int, num))
    #print()

# 반복
repeat = int(input())

for i in range(0, repeat):
    temp = input().split()
    point = list(map(int, temp))
    x = point[0]-1
    y = point[1]-1

    # width
    for j in range(0, 19):
        if board[x][j] == 0:
            board[x][j] = 1
        else:
            board[x][j] = 0

    # cols
    for k in range(0, 19):
        if board[k][y] == 0:
            board[k][y] = 1
        else:
            board[k][y] = 0

# 바둑판 output
for i in range(0, 19):
    for j in range(0, 19):
        print(board[i][j], end=' ')
    print()
반응형
반응형

1093 : [기초-1차원배열] 이상한 출석 번호 부르기1(설명) 

# -*- Encoding:UTF-8 -*- #

a = int(input())
b = input().split()
num = list(map(int, b))
result = [0 for i in range(23)]

for i in range(0, a):
     result[num[i]-1] = result[num[i]-1] + 1

for i in result:
    print(i, end=' ')
반응형

+ Recent posts