본문 바로가기

Algorithm

(175)
[SWEA] D3. 최대 상금 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15Khn6AN0CFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 해결 방법 swea에서 D3 치고는 어려웠던 문제이다. 완전탐색 문제이며, 가지치기를 하지 않으면 시간초과가 나온다,, 해결하는데 1시간 조금 넘게 걸렸다. 가지치기 경우를 생각하는데 있어서 시간이 오래걸린듯 하다. 숫자들의 자리를 서로 교환해야하는 문제인데 재귀함수를 이용해서 2중 for문에 해당하는 i, j를 이용하여 자릿수를 바꿔주고 재귀함수를 넣어준다. 가지치키 경우에는 answer를 ..
[SWEA] D2. 달팽이 숫자 https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PobmqAPoDFAUq&categoryId=AV5PobmqAPoDFAUq&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 실패한 코드 달팽이 숫자는 프로그래머스의 달팽이 어쩌고와 유사한 문제로 생각해서 이 전에 풀었던 방식으로 접근을 하였다...
[BOJ] 16236. 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 1. 해결방법 일단 로직 생각하는데 오래 걸렸고, 생각을 코드로 옮기는데에도 중간중간 디버깅을 많이 해서 골드 4, 5문제보다 두배정도 걸렸다. 5~6시간 정도;; 코드로 옮기려는데 생각보다 조건이 까다로웠다. 작은 물고기만 먹을 수 있음 같은 사이즈의 물고기는 지나갈 수만 있음 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. - 먹을 수 있는 물고기가 1마리보다 많다면, 거..
[BOJ] 11559. Puyo Puyo https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 1. 해결방법 시뮬레이션 BFS 문제이다. 문제를 해결하는데 있어서 큰 어려움은 없었지만, 정답까지 오는데 많이 헤맸던 문제이다. 3시간 정도 걸렸다. 쉽게 말해 애니팡과 같은 게임 종류의 문제이다. 알파벳을 터트리고 위에 있던 알파벳은 아래로 내려가는 로직으로 구성되어있다. 큐를 이용해서 2중 for문을 돌면서 알파벳이 있을 때, 큐에 담고 해당 알파벳과 일치하는 알파벳..
[BOJ] 15685. 드래곤 커브 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 1. 해결방법 시뮬레이션 문제이다. 하지만 이동 방향에 대한 규칙을 찾아야하는 무시무시한 방법이 숨어있다. 본인은 가까스로 찾긴했는데 찾아도 다른 부분의 로직을 코드로 옮기는데 한계가 있어 풀이를 참조하였다. 시간은 2시간정도 걸렸다. 가장 중요한건 드래곤 커브의 방향의 규칙성을 찾는게 중요하다. 0세대 : 0 1세대 : 0 1 2세대 : 0 1 2 1 3세대 : 0 1..
[BOJ] 2636. 치즈 https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 1. 해결방법 시뮬레이션 BFS 문제이다. 능력 부족으로 3시간 정도 걸렸다,,,,,, 주의해야될 점은 치즈의 겉 부분만 녹아서 없어진다는 부분이다. 본인도 어떻게 로직을 구성할까 고민을 두시간 이상 했다. 시작은 (0, 0)에서 큐에 append하면서 시작한다. q가 없어질 때까지 while문을 반복한다. maps에서 인덱스 값이 0에서 0인 위치를 if문으로 판별해서 q에 append한다. 여기서 방문 기록을 해..
[BOJ] 14499. 주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 1. 해결방법 전형적인 시뮬레이션 문제이고, 1시간 정도 걸렸다. 이 문제에서 핵심 포인트는 주사위의 값을 리스트로 미리 초기값을 구하고, 주사위가 굴려질 때마다 동 서 남 북 위 아래의 위치 값을 새로 갱신해주면 된다. dy, dx 동서남북 이동 배열은 문제에서 1, 2, 3, 4가 동서북남이라고 명시되어있으므로, 0번째 인덱스에..
[BOJ] 18808. 스티커 붙이기 https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 1. 해결방법 일단 시뮬레이션 문제인데, 어려워서 혼자서는 풀지 못하였다. 바킹독님 영상보고 해결 방법에 대해 도움을 받았는데도 4시간이 넘게 걸렸다,,,,,,, 중요한 부분은 1. 노트북에 모눈종이를 비교했을 때, 스티커를 붙일 수 있는지에 대한 체크를 먼저 해야한다. 2. 스티커를 붙이지 못했을 때, 90도 회전을 해야한다.(4번 반복) flag라는 변수를 사용해서 스티커르 붙일 수 있는지에 대..