본문 바로가기

알고리즘 공부/백준 > Python3

(163)
[백준 파이썬] #1964: 오각형, 오각형, 오각형... www.acmicpc.net/problem/1964 1964번: 오각형, 오각형, 오각형… 첫째 줄에 N(1≤N≤10,000,000)이 주어진다. www.acmicpc.net [문제] 오각형의 각 변에 아래 그림과 같이 점을 찍어 나간다. N단계에서 점의 개수는 모두 몇 개일까? [문제 접근] 규칙을 찾아낸다. 1단계 → 5 2단계 → 1단계+3+2+2= 1단계+(2*3+1) 3단계 → 2단계+4+3+3= 2단계+(3*3+1) 4단계 → 3단계+5+4+4= 3단계+(4*3+1) .... [정답] 1. 알고 싶은 단계를 N에 입력받는다. 2. for문을 돌면서 만약 1단계라면 점의 개수를 저장하는 변수인 dot=5를 해주고 만약 1단계가 아니라면 dot+=(i*3+1)을 해준다. 3. 최종적으로 dot를 ..
[백준 파이썬] #17450: 과자 사기 www.acmicpc.net/problem/17450 17450번: 과자 사기 입력은 총 3개의 줄로 이루어지며, 각 줄에는 S, N, U의 순서대로 한 봉지의 가격과 무게가 띄어쓰기를 사이에 두고 주어진다. 모든 입력값은 1 이상 1,000 이하의 정수이다. 세 종류의 과자의 가성 www.acmicpc.net [문제] 남서네 집 앞 편의점에는 각각 S, N, U의 이름이 붙은 총 3가지의 과자를 판다. 남서는 오늘 과자를 10봉지 사려고 한다. 편의점의 단골인 남서는 할인 쿠폰 하나를 가지고 있는데, 총 구매 금액이 5,000원 이상일 때 500원을 깎아 주는 쿠폰이다. 구매 금액이 5,000원 미만인 경우에는 할인 쿠폰을 쓸 수 없다. 또한 할인을 여러 번 적용할 수는 없다. 남서는 과자를 고를 때 ..
[백준 파이썬] #13163: 닉네임에 갓 붙이기 www.acmicpc.net/problem/13163 13163번: 닉네임에 갓 붙이기 첫 번째 줄에는 닉네임의 수 N(1 ≤ N ≤ 100)이 주어진다. 두 번째 줄부터 N개의 줄에는 음절 단위로 쪼갠 닉네임이 주어진다. 각 줄은 알파벳 소문자와 공백만으로 이루어지며, 쪼갠 닉네임의 총 www.acmicpc.net [문제] 찬우는 모든 회원의 닉네임 앞에 ‘갓’을 붙이려고 한다. 찬우가 ‘koosaga’라는 닉네임을 가진 회원을 갓으로 바꿔 부른다면 ‘godsaga’가 된다. 또, 찬우가 ‘acka’라는 닉네임을 가진 회원을 갓으로 바꿔 부른다면 ‘godka’가 될 것이다. 찬우는 닉네임을 갓으로 바꾸는 알고리즘을 생각하다가, 아래와 같이 2단계 방법을 사용하면 될 것으로 생각했다. - 닉네임을 음절 ..
[백준 파이썬] #2506: 점수계산 www.acmicpc.net/problem/2506 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net [문제] OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3..
[백준 파이썬] #2605: 줄 세우기 www.acmicpc.net/problem/2605 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 www.acmicpc.net [문제] 학생들이 한 줄로 줄을 선 후, 첫 번째 학생부터 차례로 번호를 뽑는다. 첫 번째로 줄을 선 학생은 무조건 0번 번호를 받아 제일 앞에 줄을 선다. 두 번째로 줄을 선 학생은 0번 또는 1번 둘 중 하나의 번호를 뽑는다. 0번을 뽑으면 그 자리에 그대로 있고, 1번을 뽑으면 바로 앞의 학생 앞으로 가서 줄을 선다. 세 번째로 줄을 선 학생은 0, 1 또는 2 중 하나의 번호를 뽑는다. 그리고 뽑은 번호만큼..
[백준 파이썬] #2511: 카드 놀이 www.acmicpc.net/problem/2511 2511번: 카드놀이 첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 www.acmicpc.net [문제] 0부터 9까지의 숫자가 표시된 카드를 가지고 두 사람 A와 B가 게임을 한다. A와 B에게는 각각 0에서 9까지의 숫자가 하나씩 표시된 10장의 카드뭉치가 주어진다. 게임은 첫 번째 놓인 카드부터 시작하여 순서대로 10번의 라운드로 진행된다. 각 라운드에서는 공개된 숫자가 더 큰 사람이 승자가 된다. 승자에게는 승점 3점이 주어지고 패자에게는 승점이 주어지지 않는다. 만약 공개된 두 숫자가 같아서..
[백준 파이썬] #10801: 카드 게임 www.acmicpc.net/problem/10801 10801번: 카드게임 두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, www.acmicpc.net [문제] 두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, 한 번 제시한 카드는 버린다. 게임 승패는 다음과 같이 결정된다. 1. 각 라운드는 더 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다. 2. 열 번의 라운드에서 더 많은 라운드를 ..
[백준 파이썬] #10808: 알파벳 개수 www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net [문제] 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. [문제 접근] 리스트 ans에 0을 26개 넣어놓고 단어 S의 알파벳을 ord()로 판단하여 ans에 +1해준다. [정답] 1. 단어 S를 입력받는다. 리스트 ans에 0을 26개 선언한다. 2. for문을 돌면서 S의 알파벳을 ord()-97을 해주고 해당 ans에 +1을 해준다. ..