[Python] 백준/BOJ 6593번: 상범 빌딩 (Gold 5)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져 있다. 각 정육면체는 금으로 이루어져 있어 지나갈 수 없거나, 비어있어서 지나갈 수 있게 되어있다. 당신은 각 칸에서 인접한 6개의 칸(동,서,남,북,상,하)으로 1분의 시간을 들여 이동할 수 있다. 즉, 대각선으로 이동하는 것은 불가능하다. 그리고 상범 빌딩의 바깥면도 모두 금으로 막혀있어 출구를 통해서만 탈출할 수 있다.당신은 상범 빌딩을 탈출할 수 있을까? 만약 그렇다면 얼마나 걸릴까? 💡 Approach🙊 스스로 헷갈릴까 봐 쓰는 z, y, x 표기에 대한 주절주절..더보기더보기나는 여태까지 행을 x 좌표, 열을 ..
[Python] 백준/BOJ 11725번: 트리의 부모 찾기 (Silver 2)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기  루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.  💡 Approach사실 처음에는 복잡하게 생각해서 코드 짜기 헷갈렸다...2번부터 n번까지의 노드를 출력하려면 2 ~ n 반복문으로 탐색 함수를 돌려서 각 결과를 출력하는 건 줄 알았다.그래서 연결된 노드 중에 루트 노드가 있으면 루트 노드가 부모 노드이고.. 연결된 노드가 하나이면 연결된 노드가 부모 노드이고.. ..
[Python] 백준/BOJ 18126번: 너구리 구구 (Silver 2)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 텔레토비 동산에 사는 너구리 구구는 입구, 거실, 주방, 안방, 공부방, 운동실, 음악실, 음식 창고 등 N개의 방을 가지고 있다. 입구를 포함한 모든 방은 1부터 N까지의 번호가 있고, 입구는 1번이다.  구구의 집으로 들어가는 입구는 한 개이며 입구와 모든 방들은 총 N-1개의 길로 서로 오고 갈 수 있다.구구는 스머프 동산에서 멜론아 아이스크림을 발견했다. 구구는 무더운 여름 햇살을 피해 최대한 입구에서 먼 방에 아이스크림을 숨기려고 한다.구구가 집 입구에서 멜론아 아이스크림을 숨기려고 하는 방까지 이동하는 거리를 구하여라. 💡 Approach처음에 이 문제를 봤을 때 간선에 가중치가 있으니 다익스트라 문제 아닌가? 싶었다.하지만 다익스트라는 최단 거리를 찾는 알..
[Python] 백준/BOJ 16928번: 뱀과 사다리 게임 (Gold 5)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기  게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면, 사다리를 타고 위로 올라간다. 뱀이 있는 칸에 도착하면, 뱀을 따라서 내려가게 된다. 즉, 사다리를 이용해 이동한 칸의 번호는 원래 있던 칸의 번호보다 크고, 뱀을 이용해 이동한..
[Python] 백준/BOJ 7569번: 토마토 (Gold 5)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.각 칸은 익은 토마토(1), 익지 않은 토마토(0), 빈칸(-1) 중 하나이다.보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다.  하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 💡 Approach7576. 토마토 문제의 3차원 버전이다.문제 풀이 방식, 코드는 거의 ..
[Python] 백준/BOJ 7576번: 토마토 (Gold 5)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.각 칸은 익은 토마토(1), 익지 않은 토마토(0), 빈칸(-1) 중 하나이다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳(상하좌우)에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다.  철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다.  💡 Approach익은 토마토가 있는 칸들을 찾아서 큐에 위치를 저장한다.익은 토마토가 있는 칸에서 탐색을 시작한다.현재 위치에서 상하좌우 칸을 살펴본다.다음 칸에 안 익은 토마토가 있으면 토마토를 익게 만든다...
[Python] 백준/BOJ 1012번: 유기농 배추 (Silver 2)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추 근처에 서식하며 해충을 잡아먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해 있는 것이다.한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 되므로 서..
[Python] 백준/BOJ 5555번: 반지 (Silver 5)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 거꾸로 읽는 걱정은 없다.찾고자하는 문자열이 주어졌을 때 그 문자열을 포함하는 반지가 몇 개인지를 발견하는 프로그램을 작성하라. ✏️ Solution 1import sysinput = sys.stdin.readlinefind = input().rstrip()n = int(input())length = len(find)cnt = 0for _ in range(n): ring = input().rstrip() for i in range(len(ring)): targe..