본문 바로가기

코딩테스트166

[ 파이썬(python) ] 코드업 1484 - 2차원 배열 달팽이 채우기 4-1 📍 1484 : [ 기초 - 배열 연습 ] 2차원 배열 달팽이 채우기 4-1 2차원 배열 안에 달팽이 모양으로 값을 채우는 문제인데, 사실 이 문제를 풀기 위해 1460부터 쭉 풀었다. 총 2가지 유형으로 나눠서 풀 수 있다. ⚡️ while문으로 row, column 따로따로 반복문 돌리기 n * m의 크기로 값이 0인 2차원 배열 arr을 선언한다. row(행), column(열)을 각각 0과 -1로 초기화했는데, 이유는 1씩 증가하면서 해당 위치에 cnt가 들어가기 때문이다. 그리고 중간에 행과 열의 크기를 -1씩 감소시켰는데, 반복문이 진행될때마다 채워야 하는 값의 크기가 줄어들기 때문이다. (0, 0)부터 시작하여 column에 값을 채우고 난 이후 row-1 범위로 값을 채워야하고 다시 col.. 2021. 5. 3.
[ 파이썬(python) ] 백준 10250 - ACM 호텔 📍 백준 10250 - ACM 호텔 백준 10250 - ACM 호텔 ⚡️ 나의 풀이 사칙연산 + 구현 문제다. 쉬운 문제인 줄 알고 도전했으나 생각보다 쉽지 않았다. 또, 정답 비율이 높지 않았는데 이유를 알 것 같았다. 문제에서 가로 x 세로형태로 나오길래 2차원 배열로 초기화하는 문제인가? 했는데 아니었다. 이 문제의 핵심은 N을 H로 나눴을 때 나누어 떨어지는지 아닌지의 경우를 잘 생각하면 풀 수 있는 문제다. 크게 두 가지로 나눠서 풀면된다. 층 수를 구하는 식, 방 번호를 구하는 식 층 수: N번째 방의 층을 구할 때는 N을 H(층)으로 나눈 나머지를 구하면 된다. 이때 N이 H로 나눈 나머지가 0이 아니라면 나머지를 H층으로 선언해주고 0이라면 H층이므로 H로 선언해준다. 예를들어 H, W, .. 2021. 5. 1.
[ 파이썬(python) ] 코드업 1476 ~ 1483 - 2차원 배열 빗금 채우기 3-1 ~ 3-8 📍 1476 : [ 기초 - 배열 연습 ] 2차원 배열 빗금 채우기 3-1 빗금을 채우는경우는 2중 반복문이 아닌 3중 반복문으로 처리해야 하는데, 처음에 규칙을 찾으려 해도 도통 찾아지질 않았다. 그래서 관련영상(유튜브 - 황진경 코딩영재컴퓨터학원)에서 푸는 방법을 배웠다. 문제에 나와있는 arr[i][j]값의 좌표를 찍어보면 다음 사진과 같다. 이전에 풀었던 2차원 배열 순서대로 채우기는 2중 반복문을 이용해 i, j값이 증가할 때 순서대로 값을 출력했으나, 이번 문제는 조건을 만들어야 한다. i+j = sum인 조건이 같을 때만 좌표를 입력하기때문에 i, j가 나올 수 있는 모든 경우의 수에 조건을 대입해야 한다. 따라서, 3중 반복문을 사용해 K(sum)값과 일치하는지 여부를 파악해야 한다. 이때.. 2021. 4. 30.
[ 파이썬(python) ] 코드업 1468 ~ 1475 - 2차원 배열 지그재그 채우기 2-1 ~ 2-8 💡 1460 ~ 1467은 이전 게시물을 참고해주세요! 📍 1468 : [ 기초 - 배열 연습 ] 2차원 배열 지그재그 채우기 2-1 지그재그로는 어떻게 채워야할까?를 고민하다가 i가 홀수이거나 짝수일 때로 나눠서 작성했다. 하지만, 그것보다 flag를 사용하면 더 편하게 채울 수 있다. flag는 전구를 on/off 스위치로 끄고 켤 수 있듯이 flag를 사용해서 방향이 바뀌면 False로 설정하고 반대일 경우에는 True로 설정해 원하는 방향으로 유도 할 수 있다. 평소에 flag를 잘 사용하지 않아서 몰랐는데 괜찮은 방법인 것 같다. 전체적인 흐름이 두 가지로 나눠졌을 때 사용해봐야겠다. 현재 코드에서는 flag = True일때는 순방향으로 flag = False일때는 역방향으로 설정했다. 나머지 .. 2021. 4. 29.
[ 파이썬(python) ] 코드업 1460 ~ 1467 - 2차원 배열 순서대로 채우기 1-1 ~ 1-8 📍 코드업 1460 ~ 1467 2차원 배열 순서대로 채우기 1-1 ~ 1-8 코드업 [ 기초 - 배열연습 ] ⚡️ 서론 2차원 배열의 기초적인 개념을 다진 문제다. 저번 주 DFS, BFS 관련 문제 풀 때 2차원 배열을 많이 사용했는데, 그때마다 가로 x 세로 혹은 세로 x 가로로 입력이 주어지면 내가 지금 올바른 방식으로 접근하는지 긴가민가했었는데, 이번 기회에 개념을 다시 잡을 수 있어 좋았다. 코드 업에 2차원 배열이라고 검색했을 때 나오는 문제들은 전부 풀어봐야겠다. ⚡️ 본론 📍 1460 : [ 기초 - 배열 연습 ] 2차원 배열 순서대로 채우기 1-1 n*n크기의 2차원배열을 채우는 문제다. n = int(input()) cnt = 1 for i in range(n): for j in ra.. 2021. 4. 29.