🌿Algorithm 126

✏️ [백준 1580] 위치 바꾸기

1. 문제 www.acmicpc.net/problem/1580 1580번: 위치 바꾸기 첫째 줄에 게임 판의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 게임 판의 상태가 주어진다. 빈 공간은 ., 벽은 X, A의 위치는 A, B의 위 www.acmicpc.net 2. 접근 방법 구슬 탈출과 유사한 BFS 문제입니다 1. A와 B의 위치를 담는다 2. deque에다가 초기 위치를 담는다. + visit 체크 3. 만약 A가 B의 위치, B가 A의 위치에 있다면 ! => count 출력하고 끗 4. 3이 아니라면 다음에 갈 위치를 하나씩 확인하기 4-1. 벽인지 아닌지 4-2. 이미 들린 곳인지 4-3. A와 B가 크로스 되는지 (현재 A..

Algorithm/Python 2021.04.14

✏️ [백준 13459] 구슬 탈출

1. 문제 www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 2. 접근 방법 BFS로 풀어야합니다. 1. Queue에 red, blue 구슬 좌표를 append한다. 2. 방문 여부 확인할 check배열을 4차원 배열로 선언한다. 2-1. check = [red_y][red_x][blue_y][blue_x] 3. 구슬 굴린다. 3-1. 구슬의 다음 위치가 벽인지, 구슬의 현재 위치가 구멍인지 확인 3-2. 만약 구..

Algorithm/Python 2021.04.14

✏️ [백준 17090] 미로 탈출하기

1. 문제 www.acmicpc.net/problem/17090 17090번: 미로 탈출하기 크기가 N×M인 미로가 있고, 미로는 크기가 1×1인 칸으로 나누어져 있다. 미로의 각 칸에는 문자가 하나 적혀있는데, 적혀있는 문자에 따라서 다른 칸으로 이동할 수 있다. 어떤 칸(r, c)에 적힌 문 www.acmicpc.net 2. 접근 방법 visit 체크를 어떻게 할까 정말 많은 고민이 있었는데요 lovelyunsh.tistory.com/123 [백준] 17090 미로 탈출하기 1. 문제 www.acmicpc.net/problem/17090 17090번: 미로 탈출하기 크기가 N×M인 미로가 있고, 미로는 크기가 1×1인 칸으로 나누어져 있다. 미로의 각 칸에는 문자가 하나 적혀있는데, 적혀있는 문자에 ..

Algorithm/Python 2021.04.14

✏️ [백준 2110] 공유기 설치

1. 문제 www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 2. 접근 방법 이진탐색을 해야합니다. 3. 코드 import sys N, C = map(int, sys.stdin.readline().rstrip().split()) nums = [] for _ in range(N): nums.append(int(sys.stdin.readline().rstrip())) nums.sort() start = 1 end..

Algorithm/Python 2021.03.31

✏️ [백준 1715] 카드 정렬하기

문제 www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 접근 방법 가장 작은 크기의 두 카드 묶음을 합쳐야한다. --> 매 상황에서 가장 작은 크기의 두 카드 묶음 !! --> 우선 순위 큐 사용 코드 python import sys, heapq input = sys.stdin.readline N = int(input()) heap = [] for i in range(N): heapq.heappush(heap, int(input())) ans =..

Algorithm/Python 2021.03.26

✏️ [백준 10818] 최소, 최대

1. 문제 www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 접근방법 입력을 받아서 최대 최소를 해주면 됩니당 하지만 node.js 는 입력부터 어렵지요 ~! 다양한 방법이 있겠지만 그 중에서 저는 1) 각 줄마다 입력받고 2) 입력받은 값을 input이라는 배열에 담은 다음 3) 첫번째 입력 값인 N개만큼 for반복해서 4) minVal과 maxVal을 하나씩 찾았슴다 3. 자바스크립트 코드 const readline..

✏️ [백준 16235] 나무 재테크

1. 문제 www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 2. 접근방법 봄 -> 여름 -> 가을 -> 겨울 순으로 문제에 나온 대로 코드를 짜면 됩니다 ... 후 ... 하지만 여기에는 함정이 숨어있었슴다 바로바로바로바로바로 x, y 좌표가 반대라는 것 ... 후 ... ~! 문제를 제대로 읽지 않은 나의 탓 .. 그래서 오늘의 교훈은 **문제를 꼼꼼히 읽자 ** 입니다. 3. 파이썬 코드 N, M, K = map(int, input().s..

Algorithm/Python 2021.03.16

✏️ [백준 2847] 게임을 만든 동준이

1. 문제 www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 2. 접근방법 저는 앞에서부터 봤습니다. 대신 계속 앞에서부터 봐줘야함 매우 비효율적이었습ㄴㅣ다 3. 파이썬 코드 def cal(): answer = 0 for i in range(N - 1): if lst[i] >= lst[i + 1]: answer += (lst[i] - lst[i + 1] + 1) lst[i] -= (lst[i] - lst[i + 1] + 1) return answer def ..

Algorithm/Python 2021.03.05

✏️ [백준 2475] 검증수

1. 문제 www.acmicpc.net/problem/2475 [ 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net ](https://www.acmicpc.net/problem/2475) 2. 접근방법 1. input 받기 2. 리스트화 시켜주기 3. 각각의 원소를 제곱해줘서 더해주기 4. 10으로 나눈 나머지 도출 -> 요로코롬 자세히 쓴 이유는 ... 아래에서 ... 3. 코드 const readline = require('readline'); const rl = readline.create..