코딩테스트

    [백준] 20056번 : 마법사 상어와 파이어볼 (Python)

    [백준] 20056번 : 마법사 상어와 파이어볼 (Python)

    https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net ✅ Solution fireballs 에는 파이어볼의 좌표를, data에는 해당 좌표에 위치하는 파이어볼의 정보(질량, 속도, 방향)를 담아준다. 이때 처음 주어지는 좌표는 (0, 0)을 (1, 1)로 주기 때문에 -1 씩 해줘야 한다. 안 해서 계속 틀렸다. 그리고 k번 파이어볼을 이동시킨다. 파이어볼의 정보 r, c, m, s, d를 가져온 뒤, 이동 후..

    [백준] 21608번: 상어 초등학교 (Python)

    [백준] 21608번: 상어 초등학교 (Python)

    https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net ✅ Solution 문제에 나온 대로 구현하면 된다! students 배열을 돌면서 각 학생이 앉을 수 있는 자리를 모두 구해 정렬한 뒤, 학생의 자리를 정한다. 먼저 모든 자리를 돌면서 빈자리가 있는지 확인한다. 만약 빈자리가 있다면, 그 자리에서 거리가 1인 방향을 모두 확인하여 주위에 학생이 좋아하는 학생이 있는지 확인한 후, prefer 변수에 더해준다. 그리고 주위에 빈자리가 ..

    [백준] 14499번: 주사위 굴리기 (Python)

    [백준] 14499번: 주사위 굴리기 (Python)

    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 ✅ Solution 구현문제로, 주사위를 동서남북 방향으로 굴렸을 때의 모양만 알면 쉽게 풀린다. 예를 들어 아래와 같이 초기 값이 있다고 하면 맨 위가 1인 주사위를 [1, 2, 3, 4, 5, 6]으로 나타낸다. 그리고 서쪽으로 굴렸을 때를 생각해 보면 3이 제일 위로 위치하게 되는 [3, 2, 6, 1, 5, 4]로 나타낼 수..

    [백준] 17144번: 미세먼지 안녕! (Python)

    [백준] 17144번: 미세먼지 안녕! (Python)

    https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net ✅ Solution 단순한 구현 문제이다. 그런데 공기청정기 동작 구현이 좀 어려워서 찾아봤다. 먼저 확산의 경우, 상하좌우를 체크해서 범위 내에 있고 공기청정기의 위치가 아닐 때 확산되는 양을 더해준다. 그리고 그만큼의 양을 원래 양에서 빼준다. 다음으로 공기청정기 동작은 시계방향, 반시계방향을 따로 처리해 줬다. 방향대로 쭉 밀어서 위치하도록 한다. 위의 과정을 t번만큼 반복하고 미세먼지의 ..

    [백준] 15685번: 드래곤 커브 (Python)

    [백준] 15685번: 드래곤 커브 (Python)

    https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net ✅ Solution 90도를 어떻게 이동시킬지에 대한 아이디어가 중요한 문제였다. 하지만 난 생각 못하고 풀이를 봐버렸다. 하 너무 어렵 예제 1로 예시를 들어보려고 한다. 이동해야 할 방향 4개 (0, 1, 2, 3)을 먼저 생각해 봤다. 0세대 : 0 1세대 : 0 1 2세대 : 0, 1, 2, 1 3세대 : 0, 1, 2, 1, 2, 3, 2, 1 위에서 규칙을 찾..

    [백준] 14891번: 톱니바퀴 (Python)

    [백준] 14891번: 톱니바퀴 (Python)

    https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net ✅ Solution 단순 구현 문제였는데, 이해하는데 시간이 좀 걸렸다. 잘못 생각했던 부분이 톱니바퀴가 차례로 움직인다고 생각했던 것! 그래서 3번 톱니바퀴를 회전 -> 2번, 4번 톱니바퀴를 확인한 뒤 회전 -> 또 1번 확인하고... 땡 위의 방법이 아니라 미리 어떤 톱니바퀴가 움직일지 체크한 뒤, 한 번에 회전하도록 코드를 수정했다. 회전시킬 톱니바퀴의 왼쪽 오른쪽을 나눠서 생각했다. ..

    [프로그래머스] Level 4 - 가사 검색 (Python)

    [프로그래머스] Level 4 - 가사 검색 (Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/60060 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✅ Solution words를 길이별로 따로 담아두고 query 하나마다 몇 개 있는지 확인한다. 처음에는 그냥 완탐으로 돌렸다. 바로 시간초과 엔딩. 차라리 그냥 틀렸으면 ^^,, 초과 해결하기 빡세 새로운 방법! 와일드카드에는 a부터 z까지 들어갈 수 있다. 그럼 와일드카드에 a를 넣었을 때, 배열 안에서 몇 번째 인덱스에 위치하는지 구하고, z를 넣었을 때 몇 번째 인덱스에 위치하는지 구한..

    [백준] 11404번: 플로이드

    [백준] 11404번: 플로이드

    https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net ✅ Solution 모든 도시 간의 거리를 구하는 문제로, 플로이드 워셜 구현 문제이다. ‼️ 주의 ‼️ 도시 i에서 도시 j로 가는 길은 한 개가 아니다. 여러 개 중에 최솟값을 넣어줘야 한다. 이걸 놓쳐서 계속 틀렸다. 문제 좀 잘 읽자.. TT ✅ Code import sys input = sys.stdin.readline n = int(input()) m = int(input()) dist..