Python 234

[소프티어 6281번] 동계 테스트 시점 예측

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysfrom collections import dequeinput = sys.stdin.readline# 아침에 출근해보면 테스트 차량들 위에 눈얼음이 생겨있음# 커다란 얼음이 녹고난 뒤에 테스트가 가능# 차량마다 당일의 테스트 가능 시점을 알기 위한 예측 프로그램 제작# N x M 크기의 격자 위에 눈 얼음의 모양을 작은 정사각형들이 집합되어 있는 모양으로 변환# 아침이 되면 기온이 상승하여 천천히 녹는다# 얼음은 상하좌우 중에서 적어도 2변 이상이 외부와 접촉했을 때 정확히 1시간만에 녹음# 얼음 내부에 있는 공간은 얼음 외부 공기와 접촉하지 않는 걸로 가정# 주어진 얼음이 모두 녹아서 사라지는데 걸리는 시간n, m =..

Algorithm/BFS 2024.06.27

[소프티어 6273번] 택배 마스터 광우

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai import sysfrom itertools import permutationsinput = sys.stdin.readline# 레일의 순서를 조작해서 최소한의 무게만 들 수 있게 일을 함# N개의 레일, 각 레일은 Ni 무게 전용 레일로 주어진다.(같은 무게의 레일 X)# 레일의 순서가 정해지면 택배 바구니 무게(M)를 넘어가기 전까지 택배 바구니에 택배를 담아 들고 옮겨야 함# 레일 순서대로 택배를 담되, 바구니 무게를 초과하지 않은 만큼 담아서 이동하게 되면 1번 일한 것으로 쳐줌# (단, 택배는 순서대로 담아야 하므로 레일의 순서를 건너 뛸 순 없다)# 총 k번 일을 하는데 최소한의 무게로 일을 할 수 있도록 하자n, m, k ..

[소프티어 7594번] 나무 조경

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysfrom itertools import combinationsinput = sys.stdin.readline# 최대 4번 인접해 있는 두 나무를 묶을 예정# 묶은 나무끼리는 서로 겹쳐서는 안됨# 두 나무가 묶였을 때 얻을 수 있는 아름다움은 '두 나무의 키의 합'과 동일# 묶인 쌍의 아름다움의 합을 최대로 만들려고 함n = int(input())heights = [list(map(int,input().split())) for _ in range(n)]dx, dy = [-1,1,0,0], [0,0,-1,1]answer = float("-inf")datas = []for i in range(n): for j in ra..

[소프티어 6279번] 스마트 물류

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readline# P - 로봇, H - 부품n, k = map(int,input().split())area = list(input())visited = [False]*nfor i,value in enumerate(area): if value == 'P': for j in range(i-k,i+k+1): if 0  이번 문제는 로봇과 부품으로 이루어진 1차원 배열에서 로봇이 자신을 기준으로 k 거리만큼의 부품을 집을 수 있다고 했을 때, 부품을 집을 수 있는 로봇의 최대 수를 구하는 문제이다. 처음에는 DFS를 사용하여 풀이하려고 했는데, 생각보다 완전..

Algorithm/Greedy 2024.06.25

[소프티어 6255번] 플레이페어 암호

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai import sysfrom collections import dequeinput = sys.stdin.readline# 플레이페어 암호는 알파벳으로 이루어진 어떤 문자열을 암호화하는 방법# 알파벳으로 이루어진 문자열인 Key가 필요함# 한번에 두 글자 단위로 암호화를 진행# 5x5 크기의 표를 사용, 알파벳 26개를 모두 담기에는 칸이 1개 부족하여 I와 J를 동일하게 생각(편의상 J가 아예 X)area = [['']* 5 for _ in range(5)]alpa = [chr(x) for x in range(ord('A'),ord('Z')+1) if x != ord('J')]alpa_set = set()message = deque(li..

[소프티어 7727번] 함께하는 효도

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readline# m명의 친구를 불러 나무에서 열매를 수확# n x n 크기의 격자에 모든 칸에 나무가 심어져있고, 각 나무마다 가능한 열매 수확량이 주어져 있음# 친구들은 서로 다른 위치에서 출발하여 1초에 1칸씩 상하좌우로 움직임# 최종적으로 모든 열매 수확량의 합을 최대로 만들고자 함# 한 나무에 여러 친구가 방문하게 되더라도 열매는 딱 한번만 수확 가능# 또한, 친구들끼리 이동하는 도중 만나는 것도 가능# m명의 친구들이 3초동안 최대로 얻을 수 있는 열매 수확량의 총합n, m = map(int,input().split())area = [list(map(int,input().spl..

Algorithm/DFS 2024.06.24

[소프티어 6247번] 자동차 테스트(HSAT 7회 정기 코딩 인증평가 기출)

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai import sysinput = sys.stdin.readline# 데이터의 중앙값을 사용하여 자동차의 평균적인 연비를 파악# n대의 자동차를 새로 만들었지만 3대의 자동차만 테스트할 수 있는 상황# n대의 자동차의 실제 연비 값이 주어졌을 때, q개의 질의에 대해 임의로 3대의 자동차를 골라 테스트하여# 중앙값이 mi값이 나오는 서로 다른 경우의 수# n개의 자동차 연비는 서로 다른 값 !n, q = map(int,input().split())values = sorted(list(map(int,input().split())))length = len(values)index = 1test_dict = dict()test_inputs = ..

Algorithm/Sorting 2024.06.23

[소프티어 6266번] 회의실 예약(21년 재직자 대회 예선)

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readline# 회의실은 9시부터 18시까지만 사용 가능# 회의는 정확히 한 회의실을 연속한 일정 시간 동안만 점유(회의실,시작시간,종료시간)# 회의의 시작과 종료 시각은 시간 단위로만 설정 가능# 한 회의가 끝나는 시각에 다른 회의가 시작하는건 가능# 길이가 0인 회의는 존재 X# M개의 회의가 주어졌을 때# 회의실 별로 비어있는 시간대를 출력n, m = map(int,input().split())name_list = sorted(list(input().rstrip() for _ in range(n)))reser_dict = dict() for name in name_list: ..

카테고리 없음 2024.06.23

[소프티어 6250번] 성적 평가(HSAT 5회 정기 코딩 인증평가 기출)

import sysinput = sys.stdin.readline# N명의 인원이 참여하는 스터디# 3개의 대회, 모든 구성원이 각 대회에 참여# 참가자는 각 대회에서 0이상 1000이하의 정수인 점수를 얻음# 한 대회에서 둘 이상의 참가자가 동점이 나오는 경우도 있음# 각 대회 별로 등수 및 최종 등수를 매김# 동점인 경우에는 공동 등수, 아닌 경우에는 일반 등수# 즉, 등수 = 나보다 점수가 높은 사람의 수 + 1# 각 참가자의 대회별 등수 / 최종 등수 출력# 입력 최대 범위 : 10^5n = int(input())score_list = []sum_list = [0] * nfor _ in range(3): init = list(map(int,input().split())) for i, ..

[소프티어 7374번] 진정한 효도

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readline# 남우 부모님의 농사일을 도우려고 함# 남우에게 할당된 땅은 3x3 크기의 격자# 1  이번 문제는 3x3 크기의 격자에서 1x3 크기의 영역 안의 값들이 모두 같은 블럭을 1개 이상 만들기 위해 필요한 최소 비용을 구하는 문제이다. 비용을 구하기에 앞서서 격자 중에서 값이 모두 같은 1x3 크기의 블럭이 있는지 확인하기 위해 가로와 세로 기준으로 점검하는 함수(check_row / check_col)을 선언하였고, 모든 행과 열을 순회하면서 점검해본 결과 존재할 경우(available) 곧바로 0을 출력하도록 구현하였다. 만약에 값이 모두 같은 1x3 크기의 블럭이 없다..