본문 바로가기

알고리즘16

카카오 인턴십 표 편집 (Python) 처음에 잘 못풀어서 카카오 풀이를 보고 풀었던 문제로 효율성 테스트까지 통과하려면 연결 리스트를 사용해서 풀어야하는 문제입니다. 그런데 연결리스트로 구현하는걸 알더라도 각 노드의 prev와 next가 None일 때 에러가 나는걸 처음에 고려하지 않은채 풀어서 푸는데 꽤 시간이 걸렸습니다. 1 2 3 // 아래와 같은 코드를 작성할 때 // node.prev가 None이라면 에러가 납니다. node.prev.next = None cs Python 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50.. 2021. 8. 21.
백준 사회망 서비스(Python/Go) 문제 링크: www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net dp+dfs로 풀이할 수 있는 문제입니다. 우선 본인이 얼리어답터가 아닐 때는 친구들은 얼리어답터일 수도 있고 아닐 수도 있습니다. 그러나 본인이 얼리어답터가 아니라면 친구들은 모두 얼리어답터여야 합니다. 얼리어답터인 경우와 아닌 경우를 따져야하므로 dp는 dp[i][0], dp[i][1] 이렇게 2차원으로 만듭니다. dp의 값은 최소개수를 나타냅니다. 예를 들어 dp[1][0] 이라면 1번이.. 2021. 4. 15.
백준 단지번호 붙이기(Go) 문제 링크: www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 전형적인 BFS(DFS로도 풀이가능)문제입니다. 마지막에 정렬 후에 출력해야 하는 것에 주의해야합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59.. 2021. 4. 11.
백준 아기상어 (Go) 문제 링크: www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 삼성 기출문제로 꽤 까다로운 문제입니다. 문제를 보면 다들 BFS로 풀어야 한단건 느끼셨을 겁니다. 문제 조건을 보면 거리가 같은 경우 위쪽을 먼저 탐색해야하고 위쪽에 여러개 있는 경우 제일 왼쪽을 탐색해야한다고 나와있습니다. 그래서 dx = (-1, 0, 1, 0) dy = (0, -1, 0, 1) 이런식으로 위쪽, 왼쪽을 먼저 BFS탐색으로 풀면 되지 않을까라는 생각이 들 수 있습니다. .. 2021. 4. 7.