본문 바로가기

구현20

[Python] 백준 9944번 : NxM 보드 완주하기 https://www.acmicpc.net/problem/9944 9944번: NxM 보드 완주하기 N×M 보드 위에서 할 수 있는 게임이 있다. 보드는 크기가 1×1인 정사각형 칸으로 나누어져 있다. 보드의 각 칸은 빈 칸 또는 장애물이다. 장애물은 아래 그림에선 어두운 사각형으로 표시되어져 www.acmicpc.net 💡 문제 풀이 간단한 구현 문제이다. 백트래킹을 곁들인. 백트래킹을 하면서 매번 2차원 배열을 복사하면 메모리가 너무 커지기 때문에 방문했던 좌표들을 처리하는 리스트를 새로 만들었다. ✔️ 느낀 점 어렵지 않은 구현 문제였다. 이전에 예외처리를 하는 문제를 풀어봐서 괜찮았다. 💻 코드 import sys input = sys.stdin.readline MAX = 1000001 ans, .. 2022. 9. 18.
[Python] 백준 2931번 : 가스관 https://www.acmicpc.net/problem/2931 2931번: 가스관 www.acmicpc.net 💡 문제 풀이 구현 문제이다. 문제의 조건만 맞춰서 풀어주면 된다. 중요한 조건은 다음과 같다. 무조건 답이 존재한다. 가스의 흐름이 유일하다. M과 Z에는 단 하나의 파이프와 연결되어있다. 무조건 하나의 파이프만 문제가 있다. 위 조건들에 따라서 우리는 파이프만 확인해주면 된다. 내 풀이의 사고 과정은 다음과 같다. 2차원 배열을 돌면서 파이프만 확인한다. 확인하는 파이프 모양에 맞게 파이프들이 연결되어있는지 체크한다. 단 하나의 파이프만 문제가 있으므로 연결되어있지 않는 파이프를 확인하면 바로 반복을 종료해준다. 길이 4의 배열에 문제가 있는 파이프 근처 상, 좌, 우, 하 순서로 파이프.. 2022. 8. 25.
[Python] 프로그래머스 : 빛의 경로 사이클 https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr 문제 풀이 구현에 관한 문제이다. 빛이 이동하는 순환 경로를 따져야 하기 때문에 한번 지나간 길은 다시 갈 수 없다. 또, 각 칸마다 상하좌우로 이동하는 것을 모두 따져야 한다. 이게 문제 해결의 시작이다. 위의 2가지 조건을 모두 따지기 위해서 3차원 배열을 만들고 딕셔너리를 만들어 이동방향에 맞는 값을 대입해준다. 모두 따져야 하.. 2022. 7. 1.
[Python] 백준 2108번 : 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제 풀이 수학적인 능력을 물어보는 구현 문제이다. 문제에서 물어보는 대로 따라가면 된다. 산술평균 : n개의 수를 합 합해서 n으로 나눈 뒤 반올림하면 된다. statistics 라이브러리에 있는 mean() 함수를 써도 상관은 없는데 오히려 메모리와 시간을 잡아먹는다. 중앙값 : n이 무조건 홀수로 주어지기 때문에 (n+1)/2 -1 이 무조건 중앙값이다! 최빈값 : 빈도를 따지기 위해서 딕셔너리를 사용했다.. 2022. 6. 21.
[C++] 프로그래머스 : 행렬 테두리 회전하기 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 문제 풀이 쉬운 편의 구현 문제이다. map[x1][y1+1]에서 값이 다르기 때문에 마지막에 추가해주는 것만 조심하면 된다. 느낀 점 처음에는 너무 간단한 구현이지만 코드가 길어서 의심을 했다. 근데 정말 저게 다다! 코드 #include #include #include using namespace std; int map[101][101]; .. 2021. 10. 12.
[C++] 백준 16236번 : 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 풀이 문제에서 중요한 것은 2가지이다. 바로, BFS 구현과 우선순위를 정하는 것. 아기 상어의 정보와 물고기의 정보를 구조체로 구현했다. 구조체라는 틀에서 모든 정보를 가지기 위함이다. 함수 BFS에서는 배열 dx와 dy를 통해서 상하좌우를 한 칸씩 탐색한다. 탐색 도중에 나올 수 있는 경우는 4가지로, 1. 빈 칸인 경우 : 방문했음을 체크하고, 이동거리만 추가해준다. 2. 아기상.. 2021. 9. 15.