Koala - 11기/기초 알고리즘 스터디

문제 코드 arr = list(input().split()) arr1 = [] for i in arr: if i == 'i' or i == 'pa' or i == 'te' or i == 'ni' or i == 'niti' or i == 'a' or i == 'ali' or i == 'nego' or i == 'no' or i == 'ili': if i == arr[0]: arr1.append(i) else: continue else: arr1.append(i) ans = [] for i in range(len(arr2)): ans.append(arr1[i][0].upper()) print(''.join(ans)) 해설 입력되는 글자를 공백에 따라 arr이라는 리스트에 저장한다. 'i', 'pa', 'te..
문제: 10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 코드 코드 설명 위 문제는 스택을 이용하여 풀 수 있는 문제로, 스택에 저장할 정수가 0에서 1,000,000 사이의 값을 가지므로 long long형을 가지는 스택을 써주었다. 0이 입력이 된다면, 가장 최근에 입력된 수를 삭제해주는 처리를 해주면 되기 때문에, for문으로 반복하는 동안 0이 아닌 수가 입력이 되면 push를 이용해 스택에 쌓아 주었고 만약에 0이 입력이 되면..
문제 https://www.acmicpc.net/problem/3449 3449번: 해밍 거리 입력을 여러 개의 테스트 케이스로 이루어져 있다. 첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 각 줄에는 이진수가 하나씩 주어진다. 두 이진 www.acmicpc.net 문제풀이 1.T를 입력받고 T만큼 반복되는 반복문을 작성한다. 2.2개의 이진수를 문자열로 입력받는다. 이러한 입력은 T만큼 반복되게 만들어준다. 2.해밍거리값을 hamming=0이라고 정의한다. 이 값은 T만큼 반복될때마다 초기화 되도록 만들어준다. 3.그리고 T만큼 반복되는 반복문 안에 한 이진수를 기준으로 그 이진수의 첫글자씩 다른 이진수와 비교하는 반복문을 작성해준다. 서로 다른 자리수일..
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 알고리즘 분류 브루트포스 알고리즘 정렬 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 ..
https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이 www.acmicpc.net 문제해석 입력된 글중 가장 많이 나온 알파벳을 찾아 출력하는 프로그램을 작성하는 문제이다 코드 word = [0 for i in range(26)] while True: try: inStr = str(input()) for s in inStr: if s.islower(): word[ord(s)-97] += 1 except EOFError: break for i in range(26): if..
https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 알고리즘 분류 정렬 문제 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오. 1. 국어 점수가 감소하는 순서로 2. 국어 점수가 같으면 영어 점수가 증가하는 순서로 3. 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 4. 모든 점수가 같으면 이름이 사전 순으로 증가하는 ..
문제 :2947번: 나무 조각 (acmicpc.net) 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 코드 코드 설명 위 문제는 버블정렬(bubble sort)과정을 전부 출력하는 것이다. 그래서, 먼저 for문을 이용해 버블정렬을 진행할 수들을 입력 받아서 배열에 저장해준다. 그 후, while문을 통해서 완전히 정렬될 때 까지 반복을 해주는데 내부에 for문을 이용하여 인접한 자리의 수끼리 비교를 한 후 오름차순이 될 수 있도록 바꿔주거나 그대로 둔다. 이때, 인접한 자리의 수가 변경된 경우, 변경된 배열을 출력을 해준다. w..
https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 문제 해석 저장된 사이트 주소의 수 N 비밀번호를 찾으려는 사이트 주소의 수 M 를 입력하여 찾고 싶은 주소의 비밀번호를 출력하는 문제이다. 찾으려는 주소를 차례대로 하나씩 출력하면 된다. 코드 N, M = map(int, input().split()) c = dict() for i in range(N + M): if i < N: a, b = map(str, inpu..
https://www.acmicpc.net/problem/7510 7510번: 고급 수학 준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없 www.acmicpc.net 문제 분석 분류 수학, 기하학, 피타고라스 정리 문제 설명 준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없이 줄자를 이용해 삼각형 세 변의 길이를 측정한 다음, 직각 삼각형인지 아닌지를 알아보려고 한다. 삼각형 세 변의 길이가 주어졌을 때, 직각 삼각형인지 아..
https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 문제 분석 분류 구현, 시뮬레이션 문제 설명 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다. 동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다. 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위..
문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 총 N개의 문자열로 이루어진 집합 S가 주어진다. 입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄..
문제링크 https://www.acmicpc.net/problem/2511 2511번: 카드놀이 첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 www.acmicpc.net 문제 코드 코드설명 A 와 B에 각각 변수값을 넣어주고 카드의 숫자가 큰 사람의 이름을 LastWinner라는 변수에 저장하였다. 이후 반복문을 사용하여 카드를 한장씩 비교하였다. 숫자가 더 큰 사람에게 승점 3점을, 비기면 모두에게 1점을 주는 코드를 작성하였다. 게임이 끝난 후 A,B의 점수가 같다면 LastWinner를 출력한다. LastWinner가 빈다면 모든 라운드가 비긴..
KauKoala
'Koala - 11기/기초 알고리즘 스터디' 카테고리의 글 목록 (2 Page)