목록알고리즘/파이썬 (119)
500error
이 문제를 처음에 풀때T = int(input())Li = []List = list(map(int, input().split()))T2 = int(input())Lis = list(map(int, input().split()))for i in Lis : Li.append(List.count(i))for j in Li : print(j, end=" ")이렇게 풀었었습니다. 하지만 이렇게 풀었더니 시간초과가 나더라고요 T = int(input())Li = []List = set(map(int,input().split()))T2 = int(input())Lis= list(map(int,input().split()))for i in range(T2): print(1,end=" ") if Lis[..
문제 직업에 아르바이트, 판매사원이 있습니다. 직원들 급여의 총합을 계산하기 위해 아래와 같이 Job, PartTimeJob, SalesJob 클래스를 작성했습니다. * Job : * Job : 직업을 나타내는 클래스입니다. * salary : 직업의 급여를 나타냅니다. 초기 급여는 0입니다. * get_salary : 직업의 급여를 return 합니다. * PartTimeJob : * PartTimeJob : 아르바이트를 나타내는 클래스이며 Job을 상속합니다. * work_hour : 아르바이트를 한 시간입니다. * pay_per_hour : 아르바이트의 시간 당 급여입니다. * get_salary : 아르바이트 급여를 계산하여 return 합니다. * SalesJob : * SalesJob : 판매..
문제 스택 두개를 이용해 Queue 자료구조를 만들었을 때, Queue 자료 구조의 pop(또는 dequeue) 함수를 구현하려합니다. Queue란 먼저 삽입한 데이터를 먼저 빼내는 자료구조를 뜻합니다. pop 함수를 만들기 위해 다음과 같이 프로그램 구조를 작성했습니다. 스택2가 비었다면 스택1에 아무것도 남지 않을때까지 스택1을 pop한 값을 스택2에 push 한다. 스택2를 pop한 값을 리턴한다. 배열 stack1과 정수 stack1_idx, 배열 stack2과 정수 stack2_idx가 solution 함수의 매개변수로 주어집니다. 이때, stack1_idx는 stack1을 스택으로 이용했을 때 stack1의 top의 index를 의미하며, stack2_idx는 stack2를 스택으로 이용했을 ..
문제 수열 S가 주어질 때, 이 수열의 연속된 부분 수열 중 지그재그 수열 길이의 최댓값을 구하려 합니다. 지그재그 수열이란 첫 번째 원소부터 인접한 원소의 차이가 증가 → 감소 → 증가 → 감소 ... 혹은 감소 → 증가 → 감소 → 증가 ... 순으로 나타나는 수열을 말합니다. 단, 수열의 길이는 3 이상이어야 합니다. 예를 들어 수열이 [ 2, 5, 7, 3, 4, 6, 1, 8, 9]인 경우, 연속된 부분 수열 [5, 7, 3, 4]가 부분 수열 중 가장 긴 지그재그 수열이 됩니다. 부분 수열 중 가장 긴 지그재그 수열의 길이를 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다. 1. 각 숫자가 바로 이전 숫자보다 증가했는지, 혹은 감소했는지 표시한 배열을 만듭니다. 1-1. "증가"는 "IN..