오늘은 선 피드백(아직도 2차원 BFS에서 실수가 나오다니요!!😤)1. command의 for com in command:를 할 때, c로 변수를 주면 (r,c)로 row,column 으로 받을 때 변수명 겹침2. 한 방에 지워야하는 폭탄 같은 문제에서 각자 단일 처리하면 안됨, 끝나고 한 번에 처리해야함 (문제 핵심 부분 파악하기)3. 2차원 한방에 제거 (아직도 어리버리) crazys = [[i,j] for i, j in crazys if [i,j] not in delete or 0] 정답from sys import stdinmove = [(0,0),(1,-1),(1,0),(1,1),(0,-1),(0,0),(0,1),(-1,-1),(-1,0),(-1,1)]r_line = stdin.readlin..
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개씩의 키트를 사용하며, 매일 어떤 키트를 사용할 지는 마음대로 결정할 수 있다. 운동 키트들은 각각의 중량 증가량을 가지고 있으며, 사용할 때마다 즉시 중량이 증가하게 된다. 이 때 몇몇 운동 키트들의 중량 증가량이 같을 수 있으나, 서로 다른 운동..
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # Prim 알고리즘 heapq 사용x, 정통알고리즘 INF = float('INF') def prim(n, costs, x): selected = [False]*n # 우리편 distance = [INF]*n # 가중치를 담는 배열 adj_mat = [[INF]*n for _ in range(n)] # 인접행렬 # 1)graph init for c in costs: adj_mat[c[0]][c[..
https://www.acmicpc.net/problem/7569 7569번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100,www.acmicpc.net # 문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마..
https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가하는 부분 수열수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는www.acmicpc.net# 문제수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 부분 수열은 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 이고, 합은 113이다..
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)www.acmicpc.net 문제이 문제는 아주 평범한 배낭에 관한 문제이다.한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다.준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물..
알고리즘 bfs문제(2차원배열) 문제를 풀 때, index가 나가지 않도록 예외처리를 해야 한다. 이때 move = [(0,-1),(0,1),(-1,0),(1,0)] for dx,dy in move: px = x + dx py = y + dy if 0