본문 바로가기

분류 전체보기521

[ 파이썬(python) ] 백준 1110 - 하얀 칸 📍 백준 1110 - 하얀 칸 백준 1110 - 하얀 칸 ⚡️ 나의 풀이 문제 중 번갈아가며 색칠 되어있다.라는 힌트에서 규칙을 찾을 수 있다. 저번에 풀었던 boj_1018 체스판 다시 칠하기에서 규칙을 볼 수 있다. 또, 이 문제를 풀고 boj_1018 체스판 다시 칠하기 문제를 풀어보는 것을 추천한다. 입력을 받는다. 8 * 8 배열에서 가장 왼쪽 위칸이 흰색이므로 짝수인 자리와 동시에 말(F)인 값을 찾는다. cnt를 누적시킨다. chess = [input() for _ in range(8)] cnt = 0 for i in range(8): for j in range(8): if not (i+j) % 2 and chess[i][j] == 'F': cnt += 1 print(cnt) 2021. 5. 28.
[ 파이썬(Python) ] 여러 줄의 입력을 한 줄로 출력 하고 싶을 때 📍 여러 줄의 입력을 한 줄로 출력하고 싶을 때 아래 보기와 같은 입력일때 1줄로 출력하려면 어떻게 할까? 리스트끼리는 덧셈이 가능한데, 1차원 리스트 + 1차원 리스트 = 1차원 리스트가 된다. ''' 5 10 7 16 2 4 22 8 17 13 3 18 1 6 25 12 19 23 14 21 11 24 9 20 15 ''' n = 5 num = [] for _ in range(n): num += list(map(int, input().split())) print(num) 👉🏽 [5, 10, 7, 16, 2, 4, 22, 8, 17, 13, 3, 18, 1, 6, 25, 12, 19, 23, 14, 21, 11, 24, 9, 20, 15] 2021. 5. 28.
[ 파이썬(python) ] 백준 2578 - 빙고 📍 백준 2578 - 빙고 백준 2578 - 빙고 ⚡️ 나의 풀이 구현력을 묻는 문제였는데, 21.5.17.부터 풀기 시작하다 중간에 막혀 boj_10703 유성 문제를 풀고 다시 푸니까 감이 잡혀서 정답 판정을 받은 문제다. 이 문제의 핵심 부분은 다음과 같다. 사회자가 부르는 수를 차례로 지워가면서 check 한다.(수가 불리면 0으로 초기화시킨다.) 빙고를 check 할 때 가로, 세로, 대각선 각각 check한다. 이때, 한 줄 혹은 한 열 혹은 한 대각선에서 0이 5개가 나오면 bingo+=1을 한다. bingo >= 3이면 해당 숫자가 몇 번째 cnt된 숫자인지 출력한다. 다음으로 가로, 세로, 대각선에서 bingo를 판단하는 방법을 살펴보자. 가로(row): count.('[0, 0, 0, .. 2021. 5. 28.
[ 파이썬(Python) ] 2차원 행렬에서 세로로 최대값, 최소값 갱신하기 📍 2차원 행렬에서 세로로 최댓값, 최솟값 갱신하기 세로 R, 가로 S인 2차원 행렬에서 세로로 최대값과 최솟값을 갱신할 때 어떻게 할까? 예를 들어 다음과 같은 2차원 행렬이 있다고 가정해보자. ''' R, S = 10, 4 x... xx.. .xx. ..xx ...x .... #... ##.. .##. ..## ...# ''' 여기서 x일 때 각 세로축에서의 최대값, #일 때 각 세로축에서의 최소값을 구하려면 다음과 같이 구할 수 있다. 다음과 같이 가로길이만큼 빈 리스트를 선언해준 다음 현재 좌표가 x 일 때 해당하는 열을 빈리스트의 index로 사용한다. 이때 비교해야하는 값은 i(row)다. 높이는 row값이기 때문이다. min값도 마찬가지로 해당하는 열을 index로 사용하고 그때의 row값을.. 2021. 5. 27.
[ 파이썬(python) ] 범위가 큰 2차원 배열 / 문자열을 출력 할 때 📍 범위가 큰 2차원 배열 / 문자열을 출력할 때 범위가 3,000 x 3,000까지 커질때 print()를 사용하면 문자열을 출력하는데 시간이 많이 걸린다. 그럴 때는 print 대신 sys.stdout.write(str)을 사용하자. 시간이 훨씬 단축되는것을 알 수 있다. print(sys.stdout.write('string')을 사용하면 뒤에 이상한 숫자가 붙으므로 print()를 떼고 sys.stdout.write(str)만 사용하자. 파이썬으로 boj_10703 유성문제를 풀면 왜 stdout를 써야하는지 알 수 있다. n = 3000 arr = [[0] * n for _ in range(n)] import sys for i in range(n): for j in range(n): sys.st.. 2021. 5. 27.