분류 전체보기

https://www.acmicpc.net/problem/16401문제명절이 되면, 홍익이 집에는 조카들이 놀러 온다. 떼를 쓰는 조카들을 달래기 위해 홍익이는 막대 과자를 하나씩 나눠준다.조카들이 과자를 먹는 동안은 떼를 쓰지 않기 때문에, 홍익이는 조카들에게 최대한 긴 과자를 나눠주려고 한다.그런데 나눠준 과자의 길이가 하나라도 다르면 조카끼리 싸움이 일어난다. 따라서 반드시 모든 조카에게 같은 길이의 막대 과자를 나눠주어야 한다.M명의 조카가 있고 N개의 과자가 있을 때, 조카 1명에게 줄 수 있는 막대 과자의 최대 길이를 구하라.단, 막대 과자는 길이와 상관없이 여러 조각으로 나눠질 수 있지만, 과자를 하나로 합칠 수는 없다. 단, 막대 과자의 길이는 양의 정수여야 한다. 입력첫째 줄에 조카의 수..
문제https://www.acmicpc.net/problem/27496Algorithm누적합을 이용하여 현재 알코올 농도를 구한다. 이때, 알코올이 지속되는 시간을 고려해야한다. 예제 입력 1을 보면 알코올의 지속시간이 3이므로, 첫번째 술은 3시간까지 적용 후 4번째 시간이후부터는 사라지도록 코드를 구성한다.문제에서 혈중 알코올 농도는 0.001을 곱하여 계산한다고 되어있는데, 이는 부동소수점 문제가 나타난다.해당 사진은 값을 임의로 넣었을때 prefix배열의 출력이다. 우리가 원하는 소수점 3번째 자리까지의 값이 반영이 안되어 있기 때문에, 0.001을 곱하지 않고 정수 그대로 계산한 후에, 해당 시간의 혈중 알코올 농도가 129 ~ 138 사이에 있는지 확인하는 방식으로 바꾸었다. Codeinput..
https://www.acmicpc.net/problem/10773문제풀이드디어 문제에 자료구조를 적용합니다. 화이팅..총 반복할 횟수를 알기위해 정수 K를 입력받고, stack이라는 변수명의 빈 리스트를 만듭니다.K번 반복할 동안 정수 a를 입력받습니다. 이 때 a는 문제에 기술된 재민이가 기입하는 수이며, 잘못된 숫자를 기입할 때 마다 재현이는 0을 입력받기도 합니다. stack이 비어 있으면 각줄의 a를 stack에 집어 넣습니다.단, a에 숫자 0을 입력받을 시엔 스택의 pop연산이 실행되어 마지막에 입력된 a가 삭제됩니다.0이 아니라면 다시 a를 stack에 집어 넣습니다.K번 반복이 완료되면 stack내에 있는 요소를 모두 더한 값을 출력하고 실행을 종료합니다.문제코드K=int(input())..
https://www.acmicpc.net/problem/1874 문제1이상 n(1 풀이스택에 직접 오름차순으로 수를 push하고 현재 인덱스 값과 스택 top이 같은 경우 pop한다. 연산 과정은 벡터에 저장한다.\#include #include #include using namespace std;int n, arr[100010], idx = 1;stack s;vector v;int main() { cin >> n; for (int i = 0; i > arr[i]; for (int i = 0; i
https://www.acmicpc.net/problem/1021  문제큐의 크기 N(1 풀이리스트로 iter값 이동시키며, 직접 수를 뽑아낸다. 이때 인덱스 처리 순서와 반환 값에 주의한다.#include #include using namespace std;int n, m, x, cnt = 0;listl;list::iterator iter;int main() { cin >> n >> m; for (int i = 1; i > x; if (l.size() == 1) break; list::iterator iterL = iter; int cntL = 0; while (*iterL != x) { if (iterL == l.begin()) iterL = l.end(); iterL--; cntL..
https://www.acmicpc.net/problem/1673문제풀이+ 유의사항 : 쿠폰을 도장으로 나눈 후 (서비스(추가) 치킨) 사용되지 않은 나머지 쿠폰을 고려해야 함.(이를 반복문에 넣어(나머지. %) 남은 치킨도 계산에 쓰이게 할 것) 1. 입력한 만큼 출력해주는 while True 문 삽입2. total 과 stamps 변수 설정 (n으로 함.)3. 도장의 개수가 k보다 크거나 같은 경우 계속 반복한다.3 - 1. 추가 치킨은 도장의 개수를 k로 나눈 몫이다.3 - 2. 총 치킨의 수는 ((이전 치킨의 수) + (추가 치킨의 수))이다. (값을 계속 갱신)3 - 3. 도장의 수는 (이전 도장의 수 를 k로 나눈 나머지 + (추가 치킨))의 수이다. (갱신) 4. 출력소스코드while Tru..
https://www.acmicpc.net/problem/2828문제풀이-바구니의 왼쪽과 오른쪽을 따로 생각하여 움직이도록 한다. 오른쪽 보다 숫자가 크다면 움직이고, 왼쪽보다 작으면 움직이는 식으로 최소한의 움직임을 지정한다.코드n, m = map(int, input().split())j = int(input())s = 0 #누적 움직임l = 1 #왼쪽 좌표r = m #오른쪽 좌표for i in range(j): a = int(input()) #사과 위치 if a > r: #오른쪽보다 클 때 s += a - r r = a l = a - m + 1 elif a
문제https://www.acmicpc.net/problem/14935함수 F(x)는 입력으로 주어진 수 x의 첫 자리와 수 x의 자리수를 곱한 결과를 반환하는 함수이다.예를 들어 x = 932 일때 F(x)는 9×3으로 27을 반환한다.입력받은 x에 대해서 함수 F를 수행하고, 나온 결과값에 다시 함수 F를 수행하는 것을 반복한다. 계속 반복해서 수행했을 때 어느 시점에서부터 동일한 수가 나오는 경우, 입력 x를 FA수 라고 한다.입력 x가 주어졌을때 이 수가 FA 수인지 출력하라.입력정수 x 가 주어진다. (0 ≤ x ≤ 10^100)출력정수 x가 FA수 라면 FA를 출력하고, 아니라면 NFA를 출력한다.풀이이번에는 조금 독특한 방식으로 문제를 접근해보겠습니다.함수F(x)의 반복적 적용이 항상 일정한..
https://www.acmicpc.net/problem/14503문제입력출력코드#include #include using namespace std;int N, M;vector> room;vector> cleaned;int directions[4][2] = { {-1, 0}, {0, 1}, {1, 0}, {0, -1} }; // 북, 동, 남, 서int turnLeft(int d) { return (d + 3) % 4;}int simulate(int r, int c, int d) { int cleanedCount = 0; while (true) { if (!cleaned[r][c]) { cleaned[r][c] = true; clean..
https://www.acmicpc.net/problem/14465 풀이import sysdef light(array): left, right = 0, 1 broken = [0] * N for i in array: broken[i - 1] = 1 current_broken = sum(broken[:K]) Min = current_broken for i in range(K, N): current_broken += broken[i] - broken[i - K] if current_broken
https://www.acmicpc.net/problem/3059풀이알파벳을 나열한 리스트를 생성n만큼 반복하여 set화 하여 문자열을 입력받음리스트화 후 전체 알파벳의 아스키코드 합인 2015에서 해당 문자열에 해당하는 알파벳의 아스키코드만큼 뺀코드
KauKoala
'분류 전체보기' 카테고리의 글 목록 (14 Page)