분류 전체보기

    [ 백준 11725] ( python ) 트리의 부모 찾기

    📚 트리의 부모 찾기 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 예제 입력 1 복사 7 1 6 6 3 3 5 4 1 2 4 4 7 예제 출력 1 복사 4 6 1 3 1 4 예제 입력 2 복사 12 1 2 1 3 2 4 3 5 3 6 4 7 4 8 5 9 5 10 6 11 6 12 예제 출력 2 복사 1 1 2 3 3 4 4 5 5 6 6 ✍ 접근 DFS 이용 정답 코드 import s..

    [ 22.05.11 ] 오늘의 회고

    [ 22.05.11 ] 오늘의 회고

    시간이 어떻게 흐르는지도 모르게 바쁜 시간을 보내고 있다 ⏳ 돌아보기 1. 본격적인 취업 준비 시작 2. 알고리즘 공부 / 과제 테스트 준비 3. 이력서 / 자기소개서 4. 노션 꾸미기 본격적인 취업 준비 시작 본격적으로 취업 준비를 시작하고 있다. 공개채용 상시채용등을 알아보고 핏이 맞을 것 같은 기업들을 따로 빼서 노션에 정리하고 있다. 아직 완성되지 않은 화면이라 조금 부끄럽기는 하지만 어차피 거의 나만 보는 블로그, 그냥 올려본다 알고리즘 공부 / 과제 테스트 준비 블로그 글에 소홀했던 가장 큰 원인. 잘 보고 싶은 시험이 몇개나 연달아 있어서 시험공부를 하느라 블로그를 작성하지는 못했다. 결과는 아직 잘 모르겠지만 알고리즘에만 푹 빠져 산 일주일이 나를 더 성장시킨것같다. 파이썬으로만 알고리즘 ..

    [ 22.04.28 ] 오늘의 회고_개발자 자기소개서

    ⏳ 돌아보기 1. 자기소개 자기소개 지금까지 주변 친구들의 자소서를 한번씩 읽고, 평가하고, 내가 채용담당자라면~ 이라는 말부터 시작해 많은 의견을 말해줄 수 있었다. 하지만 내 자기소개서는 한 줄 써내려가기도 어려움을 느끼고 있다. 개발자로 구직을 시작하면서 작성하는 첫 자기소개서라서 그런지 어깨가 더 무겁다. 당연히 알고 있다. 내가 하고싶은 말 보다는 채용담당자가 듣고 싶어하는 말을 작성하고, 배운 내용을 나열하기 보다는, 고민하고 선택한 흔적이 보여야 하고, 어떤 프레임워크나 라이브러리를 도입하기 전에 고민한 흔적, 프로젝트를 진행하면서 겪은 문제들, 그리고 문제를 직면하고 해결하는 방법이 보여야 한다는 것을. 위에서 말한 내용을 줄곧 블로그에 적어놓았다는 것도. 하지만 왜 이렇게 내용을 써내려가..

    [ 백준 1012 ] ( python ) 유기농 배추

    📚 유기농 배추 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다. 한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 되므로 서로 인접해있는..

    [ 백준 2606 ] ( python ) 바이러스

    [ 백준 2606 ] ( python ) 바이러스

    📚 바이러스 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는..

    [ 백준 2667 ] ( python ) 단지번호붙이기

    [ 백준 2667 ] ( python ) 단지번호붙이기

    📚 단지번호붙이기 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하..

    [ 백준 2178 ] ( python ) 미로 탐색

    📚 미로 탐색 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들..

    [ 22.04.27 ] 오늘의 회고

    ⏳ 돌아보기 1. BFS와 DFS 2. 복습 BFS와 DFS BFS와 DFS에 약하다는 생각이 들어 이 둘을 열심히 공부했다. 약한 것은 어쩔 수 없다. 배운지 얼마 되지 않았으니까. 간단하게 BFS는 deque를 활용하여 넓이 우선 탐색을 하고 DFS는 stack을 활용하여 깊이 우선 탐색을 한다는 차이점이 있다. 넓이 우선 탐색의 방법과 deque의 구조, stack의 구조, 동작 원리 들은 이제 잘 알고 있는데 테스트 문제에 적용하려고 하면 왜이렇게 삐걱거리는지 모르겠다. 하지만 분명 아침보다는 나아졌다! 그리고 내일은 오늘보다 더 나아질 것이다! 복습 새로운 것을 배우는 것 보다 기존의 것들을 다지는게 더 중요하다는 것은 알고 있다. 코딩테스트도 마찬가지라고 생각한다. 항상 우리는 새로운 유형을 ..