문제 https://www.acmicpc.net/problem/13410 코드 N, K = map(int,input().split()) B = [] for i in range(K): C = N*(i+1) C = str(C) D = C[::-1] D = int(D) B.append(D) print(max(B)) 풀이 구구단 값을 거꾸로 출력한다음 리스트에 저장하고 그 중 최대값을 출력하는 간단한 문제이다
Koala - 9기
문제 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 코드 from collections import Counter input = __import__('sys').stdin.readline input() s = list(map(int, input().split())) s = Counter(s) input() c = list(map(int, input().split())) ans = [] for i in c: i..
https://www.acmicpc.net/problem/3029 3029번: 경고 첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다. 둘째 줄에는 나트륨을 던질 시간 www.acmicpc.net 📝 알고리즘 시간 계산을 할 때 주의할 점은 24시간이 넘어갔냐 아니냐를 컴퓨터가 판단하도록 지시해야 하는 것이다. 20시와 4시는 숫자만 봤을 때 당연히 20이 더 크지만, 만약 다음날 4시를 뜻하는 거라면 4시가 더 늦은 시간이기 때문에, 이를 컴퓨터가 알아차리도록 해야 한다. 이 문제의 예시에는 두 가지 케이스가 잘 나와있다. 첫 번째 케이스는 다음날 새벽 4시를 뜻하므로 ..
문제 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 소스코드 import math n, b = map(str, input().split(' ')) b = int(b) D = {} for i in range(10): D[i] = str(i) for i in range(26): D[i+10] = chr(65+i) d = {v: k for k, v in D.items()} li = [] for i in range(len(n)): li.append(d..
문제 코드 n=int(input()) a={} for i in range(n): b=str(input()) if b not in a: a[b]=1 else: a[b]+=1 value=max(list(a.values())) key=list(a.keys()) x=[] for i in range(len(key)): if a[key[i]]==value: x.append(int(key[i])) x.sort() print(x[0]) 풀이 이전에 연습했던 딕셔너리 문제와 비슷해보여서 막힘없이 풀었다. 단순히 딕셔너리에 이미있으면 1더해주고 없으면 1저장하는식으로 입력하고 가장 큰수를 가져와서 그 key를 출력했다.
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [문제] [코드] [풀이] 이 문제를 처음 풀 때는 스택을 사용한다는 것을 생각하지 못해 여러개의 if, elif 문으로 케이스를 분류해서 풀었었다. 블로그에 올라와 있는 다른 분들의 풀이를 보고 그제서야 스택으로 푸는 문제라는 것을 생각해 풀었다. 스택에 push하는 순서는 무조건 오름차순으로 하며, pop을 통해..
문제 https://www.acmicpc.net/problem/1316 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 단어의 개수를 출..
문제 9226번: 도깨비말 도깨비말은 언어 유희 중 하나로, 글자를 특정 법칙에 따라 재구성하는 것을 말한다. 영어권에서는 피그라틴어라는 것이 있다. 주로 어린이들이 많이 쓰는 데, 남들에게 무슨 말인지 모르게 하 www.acmicpc.net 문제 설명 단어의 맨 앞 글자가 모음(a, e, i, o, u)일 때 까지 글자를 뒤로 넘긴다. (frog -> rogf -> ogfr) 그런 다음 단어 뒤에 'ay'를 붙여 완성한다. (ogfray) 코드 #include #include #include #include #include #include using namespace std; int main() { char vowel[] = {'a', 'e', 'i', 'o', 'u'}; string word, tmp..
문제 https://www.acmicpc.net/problem/2110 Algorithm 임의의 두 공유기 사이의 거리를 늘리게 되면, 이외의 공유기와의 거리가 가까워질 수 있으므로 최대한 평등하게 설치하는 것이 핵심 아이디어다. 이분탐색을 진행하여, 가장 왼쪽부터 시작해 공유기를 설치한 집으로부터 임의의 수 k이상 떨어진 집에 설치하는 것을 반복한다. 더 이상 설치할 수 없는 경우, 설치한 공유기의 개수가 c개 이상이라면 k를 줄인 후 재설치한다. c개 미만이라면, k를 키워 재설치한다. 이분탐색이 끝난 후의 k가 출력 답안이 된다. Code #include #include #include using namespace std; int n,c; vector home; void INPUT() { ios_b..
문제 팰린드롬은 앞에서부터 읽을 때와 뒤에서부터 읽을 때가 똑같은 단어를 의미한다. 예를 들어, eve, eevee는 팰린드롬이고, eeve는 팰린드롬이 아니다. 단어가 주어졌을 때, 팰린드롬인지 아닌지 판단해보자. 문제 코드 문제 풀이 string a를 선언한 후 문자열을 입력받음. 앞과 뒤에서 가운데로 좁혀오는 코드를 작성하려 했으므로 범위는 0부터 a.length/2로 정하는 for문을 작성함. for문 속에 앞과 뒤에서 1씩 줄여오며 회문인지 검사함. 만약 대칭되는 자리의 문자가 같다면 n을 1씩 더해줌. for문을 벗어난 후 회문이라면 범위로 정한 a.length/2까지 계속 n의 값이 더해졌을 것이기 때문에 if문을 사용하여 n과 a.length/2의 값이 같다면 혹은 문자열이 하나 입력되었다..
2789번: 유학 금지 (acmicpc.net) 2789번: 유학 금지 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, www.acmicpc.net 코드 해석 문자열 s 입력 받기 삭제해야 되는 알파벳들을 포함한 문자열인 'CAMBRIDGE'를 delw에 저장 답이 저장 될 빈 리스트 생성 입력 받은 문자열을 알파벳 하나씩 검사 s의 한 알파벳이 delw에 포함되어 있지 않다면 res 리스트에 추가 포함되어 있다면 추가하지 않고 다음 알파벳 검사 res 리스트의 내용을 공백없이 순서대로 출력
문제 일차원 좌표상의 점 N개와 선분 M개가 주어진다. 이때, 각각의 선분 위에 입력으로 주어진 점이 몇 개 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N과 선분의 개수 M이 주어진다. (1 ≤ N, M ≤ 100,000) 둘째 줄에는 점의 좌표가 주어진다. 두 점이 같은 좌표를 가지는 경우는 없다. 셋째 줄부터 M개의 줄에는 선분의 시작점과 끝점이 주어진다. 입력으로 주어지는 모든 좌표는 1,000,000,000보다 작거나 같은 자연수이다. 틀린 풀이 # 선분 위의 점 # 복습 횟수:0, 00:30:00, 복습필요:O import sys si = sys.stdin.readline N, M = map(int, si().split()) point_list = list(map(int, ..