Algorithm272 [ 파이썬(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. [ 파이썬(python) ] 백준 14467 - 소가 길을 건너간 이유1 📍 백준 14467 - 소가 길을 건너간 이유 1 백준 14467 - 소가 길을 건너간 이유1 ⚡️ 나의 풀이 이번에도 defaultdict를 이용해서 풀었다. 1번부터 10번까지 빈 리스트를 선언한다. 소의 위치를 빈 리스트에 추가한다. cnt는 2번 이상 움직인 소부터 증가하기 때문에 해당 값만 따로 빼냈다. 1에서 0으로 이동한 소 혹은 0에서 1로 이동한 소만 cnt를 증가하게 설정했다. 예제 입력을 보면 소가 1 -> 0 -> 1 이렇게 이동하지 않고 1 -> 0 -> 0 -> 1 혹은 0 -> 1 -> 1 -> 0으로 이동했기 때문에 바로 다음칸의 원소를 확인하는 코드로 작성해도 오답 판정이 안 나는 것 같다. from collections import defaultdict n = int(in.. 2021. 4. 28. 이전 1 ··· 38 39 40 41 42 43 44 ··· 55 다음