https://www.acmicpc.net/problem/15565 15565번: 귀여운 라이언 꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 www.acmicpc.net 코드 #include #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; int main() { vector arr; int n; int k; cin >> n >> k; int num; for (int i = ..
Koala - 13기
문제 https://www.acmicpc.net/problem/17390 17390번: 이건 꼭 풀어야 해! [2, 5, 1, 2, 3]을 비내림차순으로 정렬하면 [1, 2, 2, 3, 5]이다. www.acmicpc.net Algorithm 수열을 비내림차순으로 정렬 후에 문제에서 주어지는 구간의 합을 출력하면 되는 문제이다. 구간의 합을 출력하면 되므로 누적합을 사용하였고, 비내림차순으로 정렬하기위해 .sort()함수를 사용하였다. 누적합을 사용할 수 있으면 쉽게 풀리는 문제였던것 같다. Code input = __import__('sys').stdin.readline n,q = map(int,input().split()) arr = list(map(int,input().split())) arr.so..
1806번: 부분합 (acmicpc.net) 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 문제유형 *누적 합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입출력 예제 (입력 1) 10 15 5 1 3 5 10 7 4 9 2 8 (출력 1) 2 풀이 1. N짜리 수열을 저장하는 arr배열과, 누적합을 저장하는 total배열을 만들어 준다. ..
문제 KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. 같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다. 예를 들어, 주어진 용액들의 특성값이 [-2, 4, -99, -1, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98인 용액을 혼합하면 특성값이 -1인 용액을 만들 수 있고, 이 용액..
문제 설명 회의실 배정에서 좀 더 어려워진 유형의 욕심쟁이 기법 문제이다. 출력으로 모든 강의를 진행하는데 필요한 강의실의 개수와, 각 강의에 배정되는 강의실 번호를 출력하면 된다. 우선 모든 강의를 시작하는 시간 순서대로 오름차순으로 정렬한다. 그리고 강의가 끝나는 시간을 기준으로 최소 힙을 만들어 강의를 하나씩 집어 넣는데 아래 규칙을 따른다. 1. 최소 힙 루트 원소의 끝나는 시간이 현재 넣어야 하는 강의의 시작 시간보다 작거나 같다면 루트를 제거하고 현재 강의를 넣는다. (진행 중인 강의가 끝나고 같은 강의실에서 진행할 수 있음) 2. 최소 힙 루트 원소의 끝나는 시간이 현재 넣어야 하는 강의의 시작 시간보다 크다면 그냥 넣는다. (강의가 끝나지 않아 새로운 강의실을 만들어야 한다.) 모든 강의를..
[문제] https://www.acmicpc.net/problem/2789 2789번: 유학 금지 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, www.acmicpc.net [소스코드] word = input().strip() censor_word = "CAMBRIDGE" result = ''.join(char for char in word if char not in censor_word) print(result) [문제풀이] 1. 대문자로 단어를 입력받는다. 2. 검열할 단어로 "CAMBRIDGE"를 사용한다. 3. "CAMBRIDGE"에 포함된 알파벳을 제외한..
https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 분류 이진 탐색(이분 탐색) 문제 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서..
문제 소스코드 문제풀이 1) 연속하며 중복되는 글자들 중에서 첫글자만 따서 리스트를 만든다.(list3)ex) aaazbz ->azbz aaabc->abc 2) list3 에서 중복되는 값이 한글자도 없는 리스트를 만든다.(list2) ex) azbz->azb. abc->abc 3)list3 과 list2 가 같을때 answer값을 하나씩 증가시켜준다 .
https://www.acmicpc.net/problem/2596 2596번: 비밀편지 병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과 www.acmicpc.net 문제 병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과 같다. A 000000 B 001111 C 010011 D 011100 E 100110 F 101001 G 110101 H 111010 병현이가 어느 날 00..
https://www.acmicpc.net/problem/14465 14465번: 소가 길을 건너간 이유 5 첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다. www.acmicpc.net 유형 누적합 문제 농부 존의 농장에 원형 길이 있다고 했지만, 길은 그뿐만이 아니다. 그 옆에 일자형 길이 있는데, 1번부터 N번까지의 번호가 붙은 횡단보도 N (1 ≤ N ≤ 100,000)개로 이루어져 있다. 교통사고를 방지하기 위해 존은 각 횡단보도에 신호등을 설치해 놓았다. 그러던 어느 날, 강력한 뇌우로 인해 몇몇 신호등이 망가졌다. 존은 연속한 K개의 신호등이 존재하도록 신호등을 수리하고 싶다. 이번에도 우리가 존을 도와주자. 입력 첫 줄에..
문제 https://www.acmicpc.net/problem/2230 풀이 해당 문제는 투 포인터를 사용하면 된다. 투 포인터를 사용하기 위해서는, 먼저 정렬을 진행해줘야 한다. 문제의 요구사항은 두 수의 차 중 M보다 가장 작은 차이를 구하는 것이므로, M을 구하게 되면 바로 답이 된다. 나머지의 경우, 차이 값의 최소 값을 갱신하며 찾아가면 된다. 코드 N,M = map(int, input().split()) nums = [int(input()) for _ in range(N)] nums.sort() left,right = 0,1 result = 2e9 while left
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. 예를 들어, "Baekjoon Online Judge"를 ROT13으로 암호화하면 "Onrxwbba Bayvar Whqtr"가 된다. ROT13으로 암호화한 내용을 원래 내용으로 바꾸려면 암호화한 문자열을 다시 ROT13하면 된다. 앞에서 암호화한 문자열 "Onrxwbba Bayvar Whqtr"에 다시 ROT13을 적용하면 "Baekjoon Online Judge"가 된다. ROT1..