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

문제 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 코드 풀이 입력받은 국가와 매달의 수를 이중리스트에 넣은 다음 lambda로 금은동 순서대로 정렬한다. 정렬한 후에는 line[0]이 순서대로 나열되지 않으므로 등수를 알고싶은 국가 K의 line[0]을 index에 저장한 후 i+1을 출력한다
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 분석 카이사르 암호 방식을 이용해 영어 알파벳을 13글자씩 뒤로 밀면 된다. 소스코드 s=list(input()) for i in range(len(s)): x=ord(s[i]) if 65
https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 한 개의 리스트에 담겨있는 숫자를 순서대로 빼내야 하는 문제이다. 한 쪽으로밖에 뺄 수 없으므로, 다른 한개의 빈 리스트에 옮겨 담아가며 순서대로 빼야한다. 이러한 조건에서 주어진 순번대로 간식을 받을 수 있는지 없는지를 체크하는 문제이다. 최초의 리스트에서 숫자를 뺄 때는, 앞 쪽 인덱스부터 빼야하기 때문에, pop(0)를 사용했다. collections의 deque에서 제공하는 popleft..
1. 문제 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 2. 구현 코드 max_num=0 col=0 row=0 for i in range(9): line = list(map(int,input().split())) if max(line)>max_num: max_num=max(line) col=i row=line.index(max_num) print(max_num) print(col+1,row+1) 3. 풀이 - 우선 2차원 리스트를 입력받는다. - 탐색을 통해 원하는 위치의 데이터를 찾는다. -max초기 값을 0으로 설정해놓고..
문제 https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 풀이 해석 문제 자체의 난이도도 브론즈2 수준으로 그닥 어렵진 않지만 이 문제를 포스팅하는 이유는 C++로 문자열을 잘라내는 것이 Python만큼 간단하게 되지 않기 때문이다. Python으로 이 문제를 푼다면 list(str.split('-'))으로 문자열을 분리해서 리스트로 묶어내고 각 첫 글자만 모아 출력하면 간단히 끝난다. 하지만 C++에서는 이렇게 문자열을 ..
6996번: 애너그램 (acmicpc.net) 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(
15657번: N과 M (8) (acmicpc.net) 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 소스코드 문제 풀이 중복해서 뽑을 수 있는데, 비 내림차순순으로 출력하면 되는 문제이다. 즉, 오름차순으로 출력하면 된다. 이전에 풀었던 n과 m문제와 같이 백트래킹을 이용한다. 기존에 n과 m 문제들을 수정해서 풀었다.
https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 문제 풀이 방법 1. 각 행마다 리스트로 입력을 받고 2차원 리스트에 추가한다. 2. 1행 부터 각 수를 비교한다. 3. 최대값이 몇 행 몇 열에 있는지 저장한다. 코드
11880번: 개미 (acmicpc.net) 11880번: 개미 승현이는 방학을 맞아 심심하지만, 공부는 하기 싫습니다. 이렇게 방 안에서 하루하루 시간을 낭비하던 중, 승현이는 자신의 직육면체 모양의 지우개에 개미 한 마리가 붙어 있다는 것을 알게 www.acmicpc.net 소스코드 문제풀이 처음에는 그려진 그림에 따라서 A, B만 존재하는줄 알고 가로^2 + (세로+높이)^2만 하면 되는 줄 알아서 틀렸었다. 하지만 문제에서 서로 반대편에 위치 했다고 나와있었다. 즉, 직육면체를 펴보면 가장 큰 값이 다른 값과 더해지지 않고 그 자체로 제곱이 되어야 길이가 가장 짧기 때문에 max,min 함수를 이용하여 구현하였다. 그리고 주어진 수의 범위는 int로 표현할 수 있지만 제곱되면 표현하기 어렵기 때문..
https://www.acmicpc.net/problem/5533 5533번: 유니크 첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200) 둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다. www.acmicpc.net 문제분석 참가자 수만큼 이차원 배열에 입력받는다. 이때 이차원배열의 구성을 헷갈리지 않도록 주의해야한다. 소스코드 n = int(input()) score = [[], [], []] sum = [] for i in range(n): a, b, c = map(int, input().split()) score[0].append(a) score[1].append(b) score[2].append(c) for i in rang..
https://www.acmicpc.net/problem/15821 15821번: 낚이고 낚아라 최소 k개의 유효 낚시터를 확보할 수 있는 최소의 낚시 거리를 계산한 후, 이를 제곱한 값을 출력한다. 소수점 세 번째 자리에서 반올림하여 두 번째 자리까지 출력한다. www.acmicpc.net 좌표 평면에 다각형 모양의 낚시터가 여러개 있다. (그 다각형의 좌표는 모두 입력으로 주어진다.) n개의 낚시터 중 최소 k개의 낚시터가 원점(0,0)에서 도달 가능하게 하기 위한 낚싯대의 최소 길이를 구하는 문제이다. 원점과 낚시터 한 곳의 관계를 생각해봤을 때, 그 다각형 영역에 모두 닿을 수 있으려면 낚시대의 길이는 최소 원점에서 가장 먼 꼭짓점과의 거리와 같아야 한다. 때문에, 두 점사이의 거리 공식을 사용하..
https://www.acmicpc.net/problem/2999 2999번: 비밀 이메일 정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과 www.acmicpc.net 문제 소스 코드 문제 풀이 리스트형식으로 입력받고, 먼저 for문과 if문을 이용하여 R(행)과 C(열)을 구합니다. R개의 빈리스트가 들어있는 이차원 리스트를 만들고, 0행 0열 -> 1행 0열 -> ...->5행 0열-> ...->R행 C열 순으로 입력값을 넣습니다. 그리고 0행 0열 -> 0행 1열 -> ...-> 0행 5열-> R행 C열 순으로 ..
KauKoala
'Koala - 7기/기초 알고리즘 스터디' 카테고리의 글 목록 (2 Page)