본문 바로가기

코딩테스트

(23)
[코드트리] [python] 삼성 2024 상반기 오전 2번 : 코드트리 투어 문제 설명https://www.codetree.ai/ko/frequent-problems/problems/codetree-tour/submissions?page=1&page_size=20&introductionSetId=&bookmarkId= 삼성 코딩테스트 기출 문제 제출: 코드트리 투어 | 코드트리삼성전자 코딩테스트 기출 문제 코드트리 투어의 풀이를 제출하고 즉시 채점 결과를 확인하세요. 실시간 피드백으로 코딩 실력을 향상시킵니다.www.codetree.ai문제 설명이 길어서 전체적인 문제 내용은 위의 링크를 따라 보면 된다. 이 글에서는 핵심 로직만 다루겠다.  문제 풀이 1. 코드트리 랜드 건설n, m = 0, 0start = 0graph = {}products = {}distances = []p..
[백준] [python] 16236번 : 아기 상어 https://www.acmicpc.net/problem/16236 문제 설명N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다.아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다.아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다.아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다..
[코드트리] 삼성 코테 2024 하반기 - 코드트리 DB 구현 코드import bisectq = int(input())queries = []for _ in range(q): each = input() queries.append(each)name_to_value = {}value_to_name = {}sorted_values = []for query in queries: if query == 'init': name_to_value = {} value_to_name = {} sorted_values = [] elif 'insert' in query: _, name, value = query.split() value = int(value) if name in name_t..
[백준] [python] 3190 뱀 https://www.acmicpc.net/problem/3190문제'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다.게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다.뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다.먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다.만약 벽이나 자기자신의 몸과 부딪히면 게임이 끝난다.만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다...
[프로그래머스] [python] 스택/큐 - 기능개발 문제 설명프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.제한 사항작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다.작업 진도는 100 미만의 자연수입니다.작업 속도는 100 이하의 자연수입니다.배..
[프로그래머스] [Python] 스택/큐 - 같은 숫자는 싫어 문제 설명배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return하는 solution 함수를 작성해 주세요.제한 사항배열 arr의 크기 : 1,000,000 이하의 자연수배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 ..
[프로그래머스] [2024 카카오 기출] 도넛과 막대 그래프 https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 풀이이 문제는 각 노드와 각 그래프의 특징을 빠르게 파악해서 그래프를 찾는 것이 중요하다.'생성된 정점'은 나가는 간선의 수가 2 이상이고, 들어오는 간선의 수가 0이다.'막대 모양 그래프'의 수는 나가는 간선의 수가 0, 들어오는 간선의 수가 1인 노드의 개수와 같다.'8자 모양 그래프'의 수는 나가는 간선의 수가 2, 들어오는 간선의 수도 2인 노드의 개수와 같다.'도넛 모양 그래프'는 '생성된 정점'의 나가는 간선의 수에서 막대 모양..
[프로그래머스] [python] 과제 진행하기 문제 설명과제 진행하는 계획과제는 시작하기로 한 시각이 되면 시작새로운 과제를 시작할 시간이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춘 과제를 이어서 진행한다.만약 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새로 시작해야 하는 과제부터 진행멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과제부터 시작문제 풀이 이 문제를 보고 가장 먼저 든 생각은 스택, 그리고 막대 길이 문제였다. 말로 설명하기 어렵지만 뭔가 이 문제를 막대길이 땅따먹기 ? 하는 방식으로 풀면 되겠다는 생각이 들었다.스택은 멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과제부터 시작해야..