분류 전체보기

문제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임을 계산한다.코드
문제 15963번: CASIO (acmicpc.net) 코드
https://www.acmicpc.net/problem/17094 문제 풀이1. 문자열 길이 입력 받기2. 문자열 입력 받기3. 'e'의 개수를 나타내는 변수 선언과 동시에 0으로 초기화4. '2'의 개수를 나타내는 변수 선언과 동시에 0으로 초기화5. 해당 문자열 길이만큼 2인지 e인지 구분하는 수행 반복6. 해당 문자열의 i 인덱스가 2인지 e인지 구별하여 그에 맞는 변수값 1 증가7. 모든 반복을 끝낸 후 2의 등장횟수와 e의 등장횟수를 비교하여 경우에 맞는 출력값 출력 문제 코드 n = int(input())s = input()cnte = 0cnt2 = 0for i in range(n): if s[i] == "2": cnt2 += 1 else: cnte += ..
문제 & 링크https://www.acmicpc.net/problem/1350 풀이1. vector를 사용하여 각 파일의 크기를 저장한다. 이때 각 파일의 크기는 1,000,000,000이고, 최대 50개의 파일이 주어질 수 있으므로, 최대 50,000,000,000의 저장 공간이 필요하다. 따라서 vector의 자료형을 long long으로 설정해야 한다.2. 클러스터의 크기를 저장한다.3. 각 파일의 크기를 클러스터의 크기로 나눈다. 이때 나머지가 없을 경우 해당 몫을 count에 더하고, 나머지가 있을 경우 (몫 + 1)을 count에 더한다.4. 모든 파일에 대해 3의 과정을 반복한 후 클러스터의 크기와 count의 값을 곱해주면 사용한 디스크 공간을 얻을 수 있다. 코드#include #incl..
문제 & 링크https://www.acmicpc.net/problem/11365 풀이1. string과 getline() 함수를 사용하여 줄 단위로 암호를 입력 받는다.2. algorithm 헤더 파일의 reverse()함수를 사용하여 암호를 뒤집어서 해독한다.3. 1 - 2의 과정을 반복문을 이용하여 실행하고, if문으로 "END"가 나올 때 까지 반복한다. 코드#include #include #include using namespace std;int main() { string egassem; while(1) { getline(cin, egassem); if (egassem == "END") break; reverse..
https://www.acmicpc.net/problem/9012문제문제풀이괄호 문자열을 입력받아 문자 하나 하나를 리스트의 원소로 저장합니다. 반복문을 통하여 리스트의 원소를 탐색하다가 '('이 나오고 ')'이 나온 경우에는 리스트에서 소괄호 '('와 ')'를 삭제합니다. 이 과정을 재귀함수를 통하여 게속 반복한 후에, 만약 리스트가 빈 원소가 되었으면  문자열이 VPS를 성립하는 경우입니다. 소스코드# functiondef function(s): if len(s) == 0: return fl = len(s) for i in range(len(s)-1): if s[i] + s[i+1] == '()': s.pop(i); s.pop(i)..
풀이#include #define MAX 1000001 #define MOD 1000000009 int n; long long d[MAX]; using namespace std; int main(){     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     int T;     cin >> T;     d[1] = 1, d[2] = 2, d[3] = 4;     while(T--) {         cin >> n;         for( int j = 4; j             d[j] = (d[j - 3] + d[j - 2] + d[j - 1]) % MOD;         }         cout     }  ..
문제 링크https://www.acmicpc.net/problem/2561문제 난이도다이아몬드 5문제 설명주어진 순열을 정렬된 상태로 만들기 위해서 3번 이하의 교환으로 가능한지를 판별하는 문제입니다. 교환은 연속된 수열을 뒤집는 방식으로 이루어집니다. 주어진 순열을 가능한 한 적은 횟수로 정렬된 상태로 만들어야 합니다.문제 풀이아이디어이 문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다:비정상 구간 확인: 순열에서 연속된 숫자 간의 차이가 1보다 큰 부분과 단조증가 또는 단조감소가 아닌 부분을 확인합니다.비정상 구간 뒤집기: 비정상 구간을 뒤집어서 순열을 정렬된 상태로 만드는 방법을 찾습니다.백트래킹: 백트래킹을 이용해 최대 3번의 교환으로 문제를 해결합니다해당 풀이가 가능한 이유는 실제로 비정..
https://www.acmicpc.net/problem/15917문제 풀이input = __import__('sys').stdin.readlineq = int(input())while q: a = int(input()) while a>1: if a % 2: a=0 a//=2 print(a) q-=11. 빠른 입력을 받아오기 위해 'sys'의 stdin.readline으로 input을 설정한다.2. 쿼리 a를 읽어온다.3. a==1이면 print(a)로 1을 출력한다.4. a>1이면 a가 홀수인지 체크해가면서 2로 나눠준다.5. a가 홀수라면 a=0으로 초기화 한 후 print(a)로 0을 출력한다.6. a를 2로 나누는 것을 반복하여 ..
https://www.acmicpc.net/problem/17951 이진탐색을 이용해서 그룹 당 문제개수의 합의 최소를 구하는 문제이진탐색을 사용해서 푸는 것이란 것을 몰르고 풀었다면, 이걸 이진탐색을 사용하겠다는 생각이 들었을까 .. 싶었던 문제였다. import java.io.*;import java.util.*;public class Main { static int arr[]; static int N; static int M; public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); ..
KauKoala
'분류 전체보기' 카테고리의 글 목록 (19 Page)