코드 N = list(map(int,input().split())) A = sorted(N) if N == A: print('Good') else: print('Bad')
Koala - 6기
문제 문제풀이 문제의 경우 0이 나오면 앞에 나온 숫자를 지우면 되기 때문에 파이썬에서는 이를 리스트를 이용하여 쉽게 구현해 낼 수 있다. 먼저 변수 a에 숫자를 입력받고 입력받은 숫자만큼 반복문을 돌려 b를 리스트에 삽입한다. 그 이후 b에 0이 나올 때마다 리스트에 가장 나중에 들어온 즉, 맨 뒤의 리스트 요소를 삭제시키고 마지막에 리스트 요소의 총 합을 출력한다. import sys a = int(sys.stdin.readline()) li = [] for i in range(a): b = int(sys.stdin.readline()) if b == 0: del li[-1] else: li.append(b) print(sum(li))
https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제해석 1. 입력할 단어를 받을 문자열 변수 s가 필요하다. 2. 26개의 알파벳의 아스키코드를 담은 리스트 alphabet_list가 필요하다. 3. 26개의 0을 다음 리스트 zero_list를 선언한 뒤 각 자리를 알파벳 순서와 대칭시킨디. ex) zero_list[0] a & zero_list[25] z 4. 문자열s 각 글자의 아스키코드를 활용하여 alphabet_list에 포함되어 있으면 해당하는 알파벳 순서와 일치하는 리스트 zero_list 자리 값에 1을 더한다. 코드 코드..
https://www.acmicpc.net/problem/17094 17094번: Serious Problem 2의 등장횟수가 더 많다면 2를 출력하고, e의 등장횟수가 더 많다면 e를 출력한다. 등장횟수가 같다면 "yee"를 출력한다. (큰 따옴표 제외) www.acmicpc.net 문제 해석 문자열의 길이를 먼저 입력받고, 문자열을 입력받은 후 2와 e의 개수를 비교한다. 2가 더 많을땐 2를 출력하고 e가 더 많을땐 e를 출력한다. 단, 둘의 개수가 같을시엔 yee 를 출력한다. 코드 #include using namespace std; string str; int n; int cnt1, cnt2; int main(void) { cin >> n; cin >> str; for (int i = 0; i..
https://velog.io/@jay6768/BOJ-Python-16395-파스칼의-삼각형 Intro 이항계수를 삼각형 형태로 배열한 파스칼의 삼각형. n번째 행의 k번째 수를 구하는 문제이다. n=3, k=2라면 정답은 2이다. Solution 크기를 n으로 하여 삼각형을 의미하는 배열 arr을 미리 만들어둔다. n번째 행의 k번째 수는 n-1번째 행의 k-1번째 수와 k번째 수를 더한 값이다. Code def main(): n, k = map(int, input().split()) arr = [[1]*i for i in range(1, n+1)] for i in range(2, n): for j in range(1, i): arr[i][j] = arr[i-1][j-1] + arr[i-1][j] pr..
https://www.acmicpc.net/problem/5363 5363번: 요다 첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다. www.acmicpc.net 문제해석 입력받은 문장의 맨 앞 두 단어를 문장의 맨 뒤로 보낸다 입력받은 문자열에서 앞에 2단어를 따로 빼낸 후, 맨 앞 두 단어를 지우고 맨 뒤로 붙이는 식의 과정으로 풀이를 함 코드 문제 풀이 1. N값을 입력받음 2. 문장을 리스트로 입력받음 3. 앞 단어 2개를 다른 리스트로 옮김 4. 입력받은 문장리스트에서 앞 단어 2개를 지움 5. 따로 빼놓은 앞 단어 2개를 입력받은 문장 리스트에 붙이고 출력한다.
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 해석 N 개의 수가 주어지면 주어진 조건을 사용하여 1로 만드는 최소 연산 횟수를 구하는 문제이다. 예시로 10의 경우에 10 > 9 > 3 > 1 로 바꿀 수 있으므로 3을 출력해야 한다. 코드 input = __import__('sys').stdin.readline n = int(input()) dp = [-1] * 1000001 dp[0] = 0 dp[1] = 0 dp[2] = 1 dp[3] = 1 for i in range(4,n+1): dp[i] = dp[i-1] + 1 if i % 2 == 0:..
https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 문제분석 점화식 t(n)이 주어지고 정수를 입력받아 점화식에 해당하는 정수를 대입했을 때의 값을 출력하는 되는 문제이다. 문제에 t(0), t(1), t(2), t(3)이 주어져 있으므로 이를 이용하여 점화식을 만들면 된다. 코드 n = int(inp..
https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net [ 문제 해석 ] 주어진 문자열에 알파벳이 몇 개가 포함되어 있는지 구하는 문제이다. [ 코드 ] [ 문제 풀이 ] 1. 알파벳을 정규표현식으로 변환한다. 2. alphabet이 저장된 배열로 for문을 돌려 해당 정규표현식과 같은 알파벳의 개수를 개행문자 없이 출력한다.
2511번: 카드놀이 (acmicpc.net) 2511번: 카드놀이 첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 www.acmicpc.net 문제 해석 list로 10번의 라운드동안 A와 B의 숫자를 비교한 후 승점을 계산하여 승, 패를 구분한다. 코드 문제 풀이 먼저 변수를 설명하자면 A, B는 각각 A와 B의 카드들을 저장할 list이고 a, b는 A와 B의 승점, last_win은 승점이 같을 때를 대비해 A가 이기면 1, B가 이기면 -1, 계속 비기면 0이 저장되는 변수이다. 카드를 입력받은 후에 for문을 통해 10라운드를 진행하게 된다...
4101번: 크냐? (acmicpc.net) 4101번: 크냐? 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다. 두 수는 백만보다 작거나 같은 양의 정수이다. 입력의 마지막 줄에는 0이 www.acmicpc.net 문제 해석 두 개의 양수를 보고 첫번 째 제시된 수가 두번 째 제시된 수보다 큰지 알아보기! 크다면 Yes가 나오게 출력하고, 아니면 No가 출력되게 한다. 코드 문제 풀이 while구문이 참이라 가정을 하고 a,b 두 양의 정수가 주어진다. a와b가 둘다 0일때는 프로그램 작동을 멈춰야 하니 break구문을 사용한다. 나머지 경우 중에서 a가 b보다 클 때는 Yes를 출력한다. 그 외에는 No를 출력하게 하면 a가 b보다 ..