알고리즘, 코딩 테스트 문제를 풀다보면 정방형 2차원 배열을 회전시켜 방법을 찾아가는 문제들이 종종 보인다. 대표적으로는 카카오의 2020 블라인드 채용 문제3 이 있다. 배열을 회전시키는 문제의 경우, 계속 반복적으로 배열의 회전을 요하기 때문에 함수로 만들어놓고 활용하면 간결하고, 사용하기도 쉽다. 회전의 경우 90도, 180도, 270도 회전이 있다. '180도 할거면, 90도 2번 하면 되는 것 아니야?' 라는 질문도 있을 수 있겠다. 그것도 당연히 맞다. 하지만 단순히 90도의 회전을 요구하는 것이 아닌 많은 양의 180도 회전 또는 270도 회전을 해야할 상황이라고 하자. 180도 회전 연산을 1번 하는 상황에서는 90도 회전 연산을 2번 해야하기에 앞 상황에서 치자면 연산이 2..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! BOJ 1021 회전하는 큐 문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다. 큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! Programmers 소수찾기 문제 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 입출력 및 예제 제한 조건 n은 2이상 1000000이하의 자연수입니다. 풀이 생각 당연히 모든 수를 다 나눠가며 소수를 구할 순 없다. 제일 직관적으로 해결할 수 있는 에라토스테네스의 체를 사용하자. 방법 모든 수를 소수 집합에 넣어놓자. 낮은 수부터 n까지 순회. 당연히 2를 제외한 짝수는 소수가 아니므로, 제외한다. 각 순회에서 현재 값의 배수가 소수 집합에 존재하면, 그 배수는 소수가 아니므로 집합에서 제거..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 1107 리모콘 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이다. 어떤 버튼이 고장났는지 주어졌을 때, 채널 N으로 이동하기 위해서 버튼을 최소 몇 번 눌러야하는지 구하는 프로그램을 작성하시오. 수빈이가 지금 보고 있는 채널은 100번이다. 입력 첫째 줄에 수빈이가 이동하려고..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 17471 게리맨더링 문제 백준시의 시장 최백준은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 최백준은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 백준시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 백준시는 N개의 구역으로 나누어져 있고, 구역은 1번부터 N번까지 번호가 매겨져 있다. 구역을 두 개의 선거구로 나눠야 하고, 각 구역은 두 선거구 중 하나에 포함되어야 한다. 선거구는 구역을 적어도 하나 포함해야 하고, 한 선거구에 포함되어 있는 구역은 모두 연결되어 있어야 한다. 구역 A에서 인접한 구역을 통해서 구역 B로 갈 수 있을 때, 두..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 17406 배열 돌리기 4 문제 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다. 1 2 3 2 1 1 4 5 6배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아랫 칸이 (r+s, c+s)인 정사각형을 시계 방향으로 한 칸씩 돌린다는 의미이다. 배열의 칸 (r, c)는 r행 c열을 의미한다. 예를 들어, 배열 A의 크기가 6×6이고, 회전 연산이 (3, ..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 17281 ⚾ 문제 ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은 끝나지 않고, 1번 타자가 다시 타석에 선다. 타순은 이닝이 변경되어도 순서를 유지해야 한다. 예를 들어, 2이닝에 6번 타자가 마지막 타자였다면, 3이닝은 7번 타자부터 타석에 선다. 공격은 투수가 ..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 17136 색종이 붙이기 문제 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크기가 10×10인 종이 위에 붙이려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 0 또는 1이 적혀 있다. 1이 적힌 칸은 모두 색종이로 덮여져야 한다. 색종이를 붙일 때는 종이의 경계 밖으로 나가서는 안되고, 겹쳐도 안 된다. 또, 칸의 경계와 일치하게 붙여야 한다. 0이 적힌 칸에는 색종이가 있으면 안 된다. 종이가 주어졌을 때, 1이 적힌 모든 칸을 붙이는데 필요한 색종이의 최소 ..
- Total
- Today
- Yesterday
- 알고리즘
- docker
- Algorithm
- Istio
- 쿠버네티스
- 비동기
- HTTP
- Intellij
- Kubernetes
- hexagonal architecture
- java
- Spring
- 하루
- MySQL
- tag
- k8s
- 일상
- c++
- boj
- gradle
- 로그
- Spring boot
- Log
- 클린 아키텍처
- python
- container
- Clean Architecture
- 백준
- WebFlux
- jasync
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |