분류 전체보기

풀이패턴을 *를 기준으로 split해 문자열 a와 b로 쪼갠다.문자열 a와 파일 이름의 초반, 문자열 b와 파일 이름의 후반이 모두 일치하는지 인덱스를 통해 확인한다.파일 이름의 길이가 문자열 a의 길이 + 문자열 b의 길이 이상일 때만 일치하는지 확인하도록 하여 런타임 에러를 피한다.   코드
문제선영이의 집에는 콘센트를 꽂을 수 있는 플러그가 하나밖에 없다. 선영이는 많은 컴퓨터를 가지고 있는데, 컴퓨터의 전원 문제는 어떻게 해결하는 것일까?하나의 플러그가 있고, N개의 멀티탭이 있다. 각 멀티탭은 몇 개의 플러그로 이루어져 있다고 한다. 최대 몇 대의 컴퓨터를 전원에 연결할 수 있을까?https://www.acmicpc.net/problem/2010 입력첫째 줄에 멀티탭의 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 이어서 둘째 줄부터 N개의 줄에 걸쳐 각 멀티탭이 몇 개의 플러그를 꽂을 수 있도록 되어 있는지를 나타내는 자연수가 주어진다. 이 자연수는 1,000을 넘지 않는다.출력첫째 줄에 최대로 전원에 연결될 수 있는 컴퓨터의 수를 출력한다.풀이 했던 방법'여러 입력을 받는 문..
https://www.acmicpc.net/problem/14405 문제길이가 5000이 넘지 않는 알파벳 소문자로 이루어진 문자열 S를 입력받고, S가 "pi", "ka", "chu"로만 이루어져 있는 경우 "YES", 그렇지 않은 경우 "NO"를 출력한다. 풀이문자열을 입력받고, 인덱스를 기준으로 2, 3개씩 문자열을 잘라서 비교하며 조건을 만족하는지 확인한다.#include #include using namespace std;string s, ans = "YES";int main() { cin >> s; int idx = 0; while (idx
https://www.acmicpc.net/problem/1038문제음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다.입력첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력첫째 줄에 N번째 감소하는 수를 출력한다.예제 입출력풀이문제 조건에 입이 1,000,000보다 작은 수임이 제시되었기 때문에 dfs를 이용해 감소하는 수를 모두 찾고 이를 정렬해 정답을 찾아내는 방식..
15652번: N과 M (4) (acmicpc.net)중복이 가능한 조합을 찾는 코드조합이므로 자신이 포함된, (그 앞은 포함되지 않은) 식의 구분을 지어줘야함# 중복 조합n, m = map(int, input().split())arr = [0 for i in range(m)]def recur(cur, start): if cur == m: print(*arr) return for i in range(start, n): arr[cur] = i+1 recur(cur+1, i) recur(0, 0)
https://www.acmicpc.net/problem/2839문제 풀이정확하게 나누어 떨어질 때, 3킬로그램의 갯수가 적을수록 더 적은 개수의 봉지를 가져갈 수 있다.최대의 3킬로그램으로 가져갈 때를 가정하여, max_pcs를 설정한다. (0개 일때도 고려하므로, +1)0부터 max_pcs까지, 3킬로그램 봉지의 갯수를 pcs로 설정하여 탐색한다.N킬로그램에서 pcs만큼의 3킬로그램 봉지를 가져간 나머지에 대해, 5킬로그램으로 나누어 떨어지면, 그 갯수와 pcs를 합한 값을 출력한다.has_answer의 플래그를 통해, 정확하게 N킬로그램을 만들 수 없는 상황에 대비한다.문제 코드N = int(input())has_answer = Falsemax_pcs = (N // 3) + 1for pcs in r..
https://www.acmicpc.net/problem/3003 문제 풀이 A, B, C, D, E, F의 총합은 16이며, A는 1, B는 1, C는 2, D는 2, E는 2, F는 8을 디폴트 값으로 잡겠습니다.킹(A), 퀸(B), 룩(C), 비숍(D), 나이트(E), 폰(F)의 값을 입력받습니다.그 후 각 디폴트 값을 입력 받은 값으로 빼내어 출력합니다.출력값으로 더하거나 빼야하는 피스의 개수를 확인할 수 있습니다.문제 코드A, B, C, D, E, F = map(int, input().split())print((1-A), (1-B), (2-C), (2-D), (2-E), (8-F))감사합니다.
https://www.acmicpc.net/problem/2869알고리즘 분류수학문제땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.CodeA, B, V = map(int,input().split())print(-(-(V - A) // (A - B)) + 1)문제풀이A, B, V를 정수형으로 입력받..
https://www.acmicpc.net/problem/25602문제랑이 집사는 자신의 고양이 랑이와 메리 둘에게 매일 아침 캔을 정확히 하나씩 준다. 랑이 집사가 가진 캔의 종류는 N가지로, 집사는 i번째 캔을 A[i]개 갖고 있다. 랑이와 메리는 입맛이 까다롭고 변덕이 심해서 매일 각 캔에 대한 만족도가 다르다.  i번째 날 랑이가 j번째 캔을 먹었을 때 만족도는 R[i][j],  i번째 날 메리가 j번째 캔을 먹었을 때 만족도는 M[i][j]로 나타난다. 자연수 N과 A, R, M 배열이 주어질 때, 랑이 집사가 현재 가진 캔으로  K일동안 랑이와 메리에게 하루에 하나의 캔을 줘서 얻을 수 있는 만족도의 합의 최댓값을 구하는 프로그램을 작성하시오.입력 & 출력첫째 줄에 N, K가 주어진다. (1 ..
문제https://www.acmicpc.net/problem/4458문장을 읽은 뒤, 줄의 첫 글자를 대문자로 바꾸는 프로그램을 작성하시오.입력첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다.출력각 줄의 첫글자를 대문자로 바꾼뒤 출력한다.풀이문장의 인덱싱과 슬라이싱, 대소문자 변환 메서드를 사용하겠습니다.문장을 입력 받아 첫번째 알파벳만 인덱싱으로 가져와 대문자로 출력 후, print함수의 end옵션을 이용하여 줄바꿈을 방지합니다.그 후 나머지 알파벳들을 슬라이싱으로 가져와 대문자로 출력된 첫 알파벳 뒤에 그대로 출력합니다.코드input1 = int(input())for i in range..
https://www.acmicpc.net/problem/9095문제정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.1+1+1+11+1+21+2+12+1+12+21+33+1정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 소스코드def go(arr): global cnt if sum(arr) == n: cnt += 1 ..
https://www.acmicpc.net/problem/3046문제풀이R1과 S를 입력받은 후 S = (R1+R2)/2 임을 이용하여  R2 = 2*S - R1임을 계산한다.코드
KauKoala
'분류 전체보기' 카테고리의 글 목록 (27 Page)