https://www.codetree.ai/ko/frequent-problems/problems/ancient-ruin-exploration/description?introductionSetId=&bookmarkId= 삼성 코딩테스트 기출 문제 설명: 고대 문명 유적 탐사 | 코드트리삼성전자 코딩테스트 기출 문제 고대 문명 유적 탐사의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제수천 년 동안 잊혀진 고대 문명의 유적을 발견하게 되었습니다. 이 유적지는 5×5 격자 형태로 되어 있으며, 각 칸에는 다양한 유물의 조각이 배치되어 있습니다. 유물 조각은 총 7가지 종류로, 각각 숫자 1부터 7로 표현됩니다.[1] 탐사 진행3×3 격자 선택당..
문제미지의 공간 탈출당신은 시간 여행자입니다. 시간 여행 도중 타임머신의 오작동으로 인해 크기 N×N의 미지의 공간에 갇히게 되었습니다. 당신은 타임머신을 타고 이 공간에서 탈출해야 합니다. 탈출하기 위해, 타임머신의 기능을 활용하여 이 공간의 지리 정보를 파악했습니다.이 공간은 한 변의 길이가 N인 2차원 평면이며, 그 사이 어딘가에는 한 변의 길이가 M인 정육면체 형태의 시간의 벽이 세워져 있습니다.타임머신의 스캔 기능을 통해 다음의 정보를 얻을 수 있었습니다:미지의 공간의 평면도: 위에서 내려다본 전체 맵입니다.시간의 벽의 단면도: 시간의 벽의 윗면과 동서남북 네 면의 단면도입니다.이 평면도와 단면도는 빈 공간과 장애물로 구성되어 있으며, 각각 0과 1로 표현됩니다. 당신의 타임머신은 빈 공간만 이..
삼성공채는 B형처럼 파이썬 라이브러리 제한을 먹는다.(근데 진짜 B형은 Python 안됨)itertools => combination, permutationsys => stdin.readline(제한 먹어도 문제없음)그렇다면 combination, permutation을 라이브러리 없이 구현해 보자.(친구 말로는 거의 안 나온다고는 한다. 그래도 해봐야겠죠!)def com(idx, list): if len(list) == r: answer.append(list[:]) return for i in range(idx, n): com(i+1,list+[l[i]]) 이진탐색도 외워서 써야함참고: https://ckd2806.tistory.com/entry/%E..
https://www.acmicpc.net/problem/18429 # 문제웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 감소하게 된다. 따라서 운동을 하지 않고, 가만히 있다면 매일매일 중량이 감소할 뿐이다.다행히도 이 대학원생은 N개의 서로 다른 운동 키트를 가지고 있다. 이 대학원생은 하루에 1개씩의 키트를 사용하며, 매일 어떤 키트를 사용할 지는 마음대로 결정할 수 있다. 운동 키트들은 각각의 중량 증가량을 가지고 있으며, 사용할 때마다 즉시 중량이 증가하게 된다. 이 때 몇몇 운동 키트들의 중량 증가량이 같을 수 있으나, 서로 다른 운동..
[HSAT 6회 정기 코딩 인증평가 기출] 출퇴근길 문제를 풀다가 인자로 배열 100,000개를 100,000번 호출한 정답과전역변수를 사용해서 효율적으로 처리한 정답이 거의 동일한 시간초가 나왔다.100,000 X 100,000 = 4*100억 byte이다.그렇다면 10Gbyte를 사용한 것인데 시간초과도 안 뜨고 왜 가장 큰 문제인 memory exceed도 나지 않았을까? https://softeer.ai/practice/6248 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 해당 코드는 다음과 같다.def dfs(now, adj, visit): # 목적지 if visit[now]==1: return else: visit[now] = ..
# 신장트리(Spanning Tree) 신장(spanning): 간선의 갯수를 가장 작게 노드를 전부 이어라.(= n-1개) n개 정점 n-1개의 노드 # 최소 신장트리(MST: Minimum Spanning Tree) 네트워크에 있는 모든 정점들을 가장 적은 수의 (간선 + 비용)으로 연결 최소: 비용을 가장 작게 신장: 최소한의 간선으로(= n-1개) => 즉 최소신장트리는 싸이클이 없다. # 크루스칼 알고리즘 그리디: 전체적인 해답을 찾는다는 희망으로 매 순간 최선의 선택을 하는 것. 과연 근데 그게 궁극적으로 최선인 걸까? ex) 네비지도를 보고 가다가 잠시 빠른 길로 간 게 뒤에가 다 막히는 길이여서 더 늦을 수 있음. => 따라서 매 순간 최선의 선택이 최적의 해답임을 보장할 수 없음. 그런데..
자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서는 2개 다 존재하는데 이 차이점은 뭘까? 내부로직은 heapq를 사용하고 있었다. 그럼 차이점은 뭘까? https://stackoverflow.com/questions/36991716/whats-the-difference-between-heapq-and-priorityqueue-in-python What's the difference between heapq and PriorityQueue in python? In python there's a built-in heapq algorithm that gives you push, pop, nlargest, nsmallest... etc that you can ap..
자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서 이 차이점은 뭘까? 차이점을 알기 위해서는 선행되어 알아야 하는 개념 2가지가 필요합니다. 1) GIL 2) thread-safe, Thread-Non-Safe # 선행되는 개념보고 다음글로 넘어가기 👉 👉 https://codewizard.tistory.com/53 [Python] Priority Queue, heapq의 차이점 자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서는 2개 다 존재하는데 이 차이점은 뭘까? 내부로직은 heapq를 사용하고 있었다. 그럼 차이점은 뭘까? https://stackoverf codewizard.tistory.com # GI..
https://www.acmicpc.net/problem/7569 7569번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100,www.acmicpc.net # 문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마..