Problem Solving/CT-Python

문제 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 풀이 printer 순서를 저장할 큐를 생성 후에 여기에 프린터 중요도를 순서대로 입력한다 인덱스 번호를 저장할 큐를 생성하고 0부터 n-1까지 입력한다. 주의할 점은 프린터 중요도는 1이상 9 이하 숫자이며 프린터 인덱스 번호는 0부터 n-1까지이며 프린터 출력 순서는 1부터 n까지 이다. 현재 프린터 큐에서 몇 번째에 문서가 놓여있는지를 나타내는 M이 0부터 N 사이이다. (M을 0부터 N ..
문제 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 시도한 풀이 (시간 초과) 리스트를 사용하면 시간 초과가 생길 것 같아 리스트보다 시간복잡도가 유리한 딕셔너리를 이용하였다. 생각과 다르게 시간초과가 발생하였는데 혼자서 고민하여 답을 찾을 수 없어 질문탭에서 확인하였다. 힌트를 찾을 수 있었다. "dict를 쓰지 않고 단순히 pair로 list에 저장한 것과 차이가 없는 코드입니다. 입력을 받으면 그걸 키로 직접..
문제 https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 제출한 풀이 A B C D E F 는 0, 1, 2, 3, 4, 5 인덱스를 부여하고 0이 마주보는 면을 5, 1이 마주보는 면을 3, 2가 마주보는 면을 4 ... 이런식으로 딕셔너리에 해당면의 짝을 지정함 맨 아래 면을 1부터시작하여 맨 아래 면과 마주보는 면을 옆면에 올 수있는 면 리스트에서 제외하면 4개의 면이 남는데 이 중 가장 큰 면을 max_dice_list에 저장함. 맨 아래 주사위..
문제 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 제출한 풀이 import sys input = sys.stdin.readline n, m = map(int, input().split()) num_list = list(map(int, input().split())) sum_list = [0] * (n+1) sum_list[1] = num_list[0] for i in range(2, n+1): sum_list[i] =..
문제 https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 풀이 본인이 시도한 풀이는 다음과 같습니다. 먼저 순차적으로 위치별로 기둥의 높이를 리스트에 저장함 (info = [0] * 1001) 리스트에 저장하면서 가장 큰 기둥의 값과 인덱스를 다른 변수에 저장함 처음 기둥부터 가장 큰 기둥까지 좌에서 우로 기둥의 높이가 담긴 리스트들을 탐색한다 리스트를 탐색하면서 높이를 stack에 저장하고 stack의 마지막에 담긴 값을 area..
문제 https://www.acmicpc.net/problem/2491 2491번: 수열 0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾 www.acmicpc.net 제출한 풀이 n = int(input()) num_list = list(map(int,input().split())) result = 1 increase_temp = 1 decrease_temp = 1 for i in range(0, n-1): if num_list[i] result: result = increase_temp else: result else: increase_temp = 1 fo..
문제 문제링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 T = int(input()) for test_case in range(1, T + 1): s=input() for j in range(1,10): if s[:j]==s[j:2*j]: print(f'#{test_case} {j}') break 회문 문제랑 비슷한 유형의 느낌 문자열의 최대 길이는 30, 마디 최대의 길이는 10이므로 반복문을 0부터 9까지 반복후 문자열을 한 문자씩 리스트로 저장하여 처음 저장된 인덱스부터 j번 전까지 리스트 항목들과 j번 이후부터 2*j번까지 리스트 항목들을 비교하여 조건문이 같으면 같은 문자이므로 해당 문자열..
문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 제출한 풀이 from collections import deque n = int(input()) m = int(input()) graph = [[] for _ in range(n+1)] for i in range(m): a,b = map(int,input().split()) graph[a].append(b) graph[b].append(a) graph[a].sort() graph[b].sort()..
문제 https://level.goorm.io/exam/49094/%ED%83%9C%EB%AF%BC%EC%9D%B4%EC%9D%98-%EC%B7%A8%EB%AF%B8/quiz/1 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이 level.goorm.io 풀이 정육면체의 부피는 한변의 길이가 n일 때 n*n*n 이다 길이가 1부터 n까지의 정육면체의 부피들의 합을 구하는 문제인데 반복문을 이용하여 n을 세제곱 하여 합을 구하게 된다면 시간초과로 오답을 출력한다. 반복문으로 구하지말고 세제곱의 합 공식을 이용하여 풀면 된다...
문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS-BFS 기초문제 풀이 # 1260 DFS/BFS from collections import deque # n: 정점의 개수, m: 간선의 개수, v:탐색을 시작할 정점의 번호 n, m, v = map(int,input().split()) graph = [[] for _ in range(n+1)] for i in range(m): a,b = map(..
White Asher
'Problem Solving/CT-Python' 카테고리의 글 목록 (2 Page)