
제목은 달콤하지만 ...^^ 호락호락하지 않았던 문제,, 투 포인터 유형은 보통 arr[start, end+1]의 합으로 풀어야 하는 문제가 많았는데,이 문제는 종류의 개수를 확인하며 풀어야 한다!! 첫번째 시도[ 슬라이딩 윈도우 + 매개변수 찾기 + 투포인터 ] 로 풀이했으나 시간 초과 !!!!!! 🥹🥹from copy import deepcopyN = int(input())S = list(map(int, input().split()))num = {}for s in S: if s in num: num[s] += 1 else: num[s] = 1kind = len(set(S))if kind == N: print(2)elif kind 0: if t..

1931 회의실 배정최대 배치 가능한 회의 개수를 묻는 문제!import sysinput = lambda: sys.stdin.readline().rstrip()time = []N = int(input())for i in range(N): time.append(list(map(int, input().split())))time.sort(key=lambda x:(x[1], x[0]))cnt, t, i = 1, 0, 1while t+i 11000 강의실 배정최소 배치되는 강의실 개수를 묻는 문제!import sysinput = lambda: sys.stdin.readline().rstrip()import heapqN = int(input())s = []for i in range(N): S, T = m..

import sysinput = lambda: sys.stdin.readline().rstrip()sys.setrecursionlimit(10**6)n = int(input())inorder = list(map(int, input().split())) # left > root > rightpostorder = list(map(int, input().split())) # left > right > rootinorder_idx = [0] * (n+1)for idx, i in enumerate(inorder): inorder_idx[i] = idxdef preorder(inorder_l, inorder_r, postorder_l, postorder_r): if postorder_l > postord..

A = int(input())X = int(input())arr = [A]exp = 1while True: exp *= 2 if X 0: if x % 2 == 1: result.append(power) x //= 2 power += 1 return resultdef solution(A, X): X_bin = decompose_bin(X) ans = 1 for b in X_bin: ans *= (arr[b]) return ans % 1000000007 print(solution(A, X))A, B, C = map(int, input().split())arr = [A]exp = 1..
회사에 있는 사람 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 48625 19909 15076 40.622% 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기..

분산처리 문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 ab개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 ..

수 정렬하기 3 시간 제한 : 5초 | 메모리 제한 : 8 MB 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 복사 1 1 2 2 3 3 4 5 5 7 내 풀이 def counting_sort(arr): max_arr = max(arr) count = [0] * (max_arr + 1) sorted_arr = list() for i in arr..

진법 변환 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 입력 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. 출력 첫째 줄에 B진법 수 N을 10진법으로 출력한다. 예제 입력 1 복사 ZZZZZ 36 예제 출력 1 복사 60466175 내 풀이 N, B = input().split() ans = 0 for i in range(len(N)): if ord(N[i])>=ord('A'): Ni =..