https://www.acmicpc.net/problem/9226 문제해석 1. 문자열 입력 변수 계속 입력 BUT '#' 입력시 종료 2. 문자열 맨 앞 문자가 모음(a, e, i, o, u) 여부에 따른 조건문 3. 맨 앞 문자가 모음이면, 문자열 맨 뒤에 'ay' 추가 4. 맨 앞 문자가 자음이면, 모음 나오는 지점 탐색 5. 그 지점 ~ 끝까지 + 처음 ~ 그 지점 출력 코드 문제풀이 1. 반복해서 입력 받을 문자열 변수(s) 사용 & while문 사용해서 '#' 입력 전까지 계속 입력 2. 입력 받는 문자열 input_list 리스트에 추가 1. input_list 리스트 요소 갯수 = 입력 받은 각 문자열 갯수: 리스트 요소 갯수 만큼 읽기 2. 문자열을 factor 변수에 복붙 3. 문자열 ..
분류 전체보기
14935번: FA (acmicpc.net) 14935번: FA 정수 x가 FA수 라면 FA를 출력하고, 아니라면 NFA를 출력한다. www.acmicpc.net 문제해석 입력 받은 수의 맨 앞자리와 자리수를 곱해서 나온 값을 다시 해당 함수에 넣어서 반복하는 문제이다. 계속 반복하여 수행하다 계속 동일한 결과가 나온다면 입력 받은 수를 FA수라고 한다. 코드 문제 풀이 계속 반복되는 return 값을 얻기위해 재귀함수를 이용하였다. main부분은 간단하게 x를 입력받고 출력하는 부분만 있으며 재귀함수인 recur함수는 먼저 인수 a의 맨 앞자리를 추출하기 위해 string으로 변환시켜 주었고 계산은 s[0]와 문자열의 길이를 곱하는 식으로 계산을 하였다. 만약 인수 a와 곱한 결과가 같다면 "FA"를 ..
https://www.acmicpc.net/problem/3181 3181번: 줄임말 만들기 꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 www.acmicpc.net 쓸모 없는 단어들을 no라는 리스트에 모아둔다. 공백으로 분할하여서 word라는 리스트에 문자들을 입력받는다. 첫 단어가 no리스트 중에서 나왔을 경우에는 중요한 것이므로 sh리스트에 넣기 위한 if문 사용한다. 다음부터는 no리스트 안에 있는 단어가 나올 경우 무시하고 no리스트 안에 없는 단어만 sh리스트에 넣는다. sh에 모인 단어들 중에서 맨 앞 알파벳을 대문자로 공백 없이 출력한다.
https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 해석 숫자 배열을 입력받은 후 내림차순으로 정리 하여 출력해주는 문제이다. 코드 #include #include using namespace std; int a[100000]; int n; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0; i > a[i];..
https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 숫자 5개를 리스트로 입력 받고 for문으로 돌의 위치를 바꾼다 if문 안에 print를 만들어 위치를 바꿀때만 숫자를 출력하게 하고 숫자가 오름차순으로 모두 정리가 될때까지 while으로 반복한다
https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 문제 해석 간단히 수첩 2에 적혀 놓은 정수가 수첩 1에 적혀 있는지 찾는 문제이다. 코드 input = __import__('sys').stdin.readline t = int(input()) for k in range(t): n = int(input()) arr = list(map(int, input().split())) m = int(input()) isIn = list(map(int, input..
https://velog.io/@jay6768/BOJ-Python-2805-나무-자르기 백준 2805번 나무 자르기 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net Intro 기본적인 이분 탐색 문제. 목재절단기의 적합한 높이를 이분 탐색으로 범위를 좁혀가며 찾아야 한다. Solution 찾고자 하는 높이가 될 숫자를 임의로 정한다. 반복할 때마다 범위를 줄여가며 숫자를 다시 정한다. (mid) 해당 높이로 나무를 모두 자른다. 땅 밑으로 나무를 자를 수는 없다. (h)..
https://www.acmicpc.net/problem/3181 3181번: 줄임말 만들기 꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 www.acmicpc.net 문제해석 입력되는 문장에서 단어의 앞글자를 대문자로 하여 줄임말을 만든다. 단, 'i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili' 는 무시하나 맨처음으로 올 경우 줄임말에 포함한다. 코드 문제풀이 입력되는 문장을 공백마다 나누어 리스트에 저장한다. 그 후 리스트에 저장된 단어들중에 'i', 'pa', 'te', 'ni', 'niti', 'a..
11024번: 더하기 4 (acmicpc.net) 11024번: 더하기 4 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 www.acmicpc.net 문제 해석 한 줄에 여러 수가 주어졌을 때, 같은 줄에 있는 수를 모두 더하는 프로그램 작성하기 코드 문제 풀이 먼저 변수가 주어졌을 때 입력 하는 함수를 입력한다. 그리고 반복문을 이용해서 list, split 함수를 이용해 숫자를 구분 가능하게 한다. 후에 마지막으로 숫자들을 모두 더해 출력하도록 코드를 입력했다.
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 문제 분석 코드 #include #include #include using namespace std; int n, c,x; vector v; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> c; int num; for (int i = 0; i < n; +..
14724번: 관리자는 누구? (acmicpc.net) 14724번: 관리자는 누구? PROBRAIN, GROW, ARGOS, ADMIN, ANT, MOTION, SPG, COMON, ALMIGHTY중 동문 커뮤니티 관리자로 선발되는 후보가 소속한 동아리의 이름을 대문자로 출력한다. www.acmicpc.net 각 그룹마다 회원의 점수를 리스트로 입력 받고 같은 그룹에서 가장 높은 점수와 그룹의 이름을 딕셔너리로 저장한다. 그리고 그룹별 최고 점수중 최고점을 arr_max에 넣고 그룹별 최고점들을 key 리스트에 넣는다 각 그룹의 최고점과 arr_max와 비교해 같을때 그룹의 이름을 출력한다
https://www.acmicpc.net/problem/5704 5704번: 팬그램 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제해석 1. 알파벳 문자와 그 문자의 아스키코드를 key와 value로 담은 딕셔너리 Dict 가 필요 2. 문자열 s을 반복해서 입력받는 것이 필요 (실행 종료 조건: '*' 입력) 3. 딕셔너리 변수 Dict 안에는 a~z까지의 26개 알파벳 문자 + 공백문자(' ') 총 27개 items 쌍 존재 4. 입력 받은 문자열 s와 27개의 문자들간의 비교를 통해 27개의 문자가 모두 문자열 s에 존재하..