본문 바로가기

파이썬18

[백준 알고리즘/python] 백준 2675번 문자열 반복, 파이썬 [백준 알고리즘/python] 백준 2675번 문자열 반복, 파이썬 이번에는 백준 알고리즘의 2675번 문자열 반복 문제를 풀어보았다. 내가 사용한 언어는 파이썬이다. 이 문제는 딱 보자마자 어떻게 풀어야 할지 생각이 났다. 좀 많이 쉬운 문제였다. 그래도 정리하자면, 문자열 S를 입력 받은 후에 각 문자를 R번 반복해서 새 문자열 P를 출력하는 프로그램이다. #조건 1. 첫째 줄에는 테스트 케이스의 개수가 주어진다. #조건 2. 각 테스트 케이스에는 글자 반복횟수 R과 문자열 S가 공백을 통해 주어진다. #생각 1. 테스트 케이스의 개수 만큼 반복문을 돌린다. #생각 2. 개수 만큼의 반복문 안에서, 문자열을 받아와서 글자 * 반복횟수를 출력한다. 파이썬에서는 A*5 를 수행하면 AAAAA가 나왔던걸로.. 2020. 3. 19.
[백준 알고리즘/python] 백준 11720번 숫자의 합, 파이썬 백준 알고리즘 11720번 숫자의합 이번에 푼 문제는 백준 알고리즘의 11720번 숫자의 합 문제이다. 역시 파이썬으로 풀어보았다. 이 문제는 제법 간단하다. 별 생각없이 보자마자 "아, 바로 그냥 받아와서 더해주면 되겠구나" 생각하고, 바로 써 내려 갔다. 그렇게 써 내려간 코드이다. len = int(input()) num = input() result = 0 for i in num: result = result + int(i) print(result) 파이썬은 문자열을 반복문으로 받아오면 for문의 i로 바로 접근할 수 있으니, 그냥 더해주면 결과가 간단하게 나온다. 문제 출처 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (.. 2020. 3. 18.
[백준 알고리즘/python] 백준 1065번 한수, 파이썬 백준 알고리즘 1065번 한수, 파이썬 이번에 푼 문제는 백준 알고리즘의 1065번 한수 문제이다. 파이썬으로 풀어보았다. 문제가 요구하는 것은, 정수 X가 각 자리수로 나뉘어 졌을 때, 등차수열을 이루면 그 수는 한수라고 하는데, N이라는 정수가 주어졌을때, N보다 작거나 같은 한수들의 개수를 구하라는 문제이다. ​ 이 문제를 잘 생각해보면 한자리 정수와 두자리 정수는 그냥 무조건 한수가 된다. 규칙을 찾고 말고 하려면 세 자리는 되어야 일정하게 차이가 난다는걸 알 수 있는데, 한자리와 두자리는 그냥 한수로 두고 코드를 짜면 된다. #생각1. 숫자가 주어지면 각 자리 수를 나눈다. #생각2. 각 자리 수를 리스트에 넣고, 인덱스의 0번과 1번의 차, 1번과 2번의 차가 같으면 True 다르면 False.. 2020. 3. 16.
백준 | 4673번 셀프넘버, 파이썬 입력은 없고 출력만 있는 문제이다. 정리하면 숫자고 ​ 입력은 없고 출력만 있는 문제. 정리하자면, 숫자가 주어지고, 그 숫자와 그 숫자의 각 자리수들을 합하는걸 반복하면 무한 수열을 만들 수 있는데, 이 때, 만들기 전의 숫자가 생성자이다. 이 생성자가 없는 숫자들이 있는데, 이 숫자들을 찾아서 10000이하까지 출력하는 문제 일단 한번 문제를 생각 해 봤다. ​ 결론은 생성자가 없는 숫자를 찾는건데, ​ 1부터 시작하는 수열의 다음숫자부터는 전부 생성자가 있는거고 1은 없는거고 2는 1 +1 로 만들어져서 제외가되고, 마찬가지로 3부터 시작하는 수열의 다음 숫자부터 전부 생성자가 있는거니까 싹 다 제외시키고 반복문을 돌리면 될거라고 생각했다. 내 생각을 글로 하나씩 정리 해 보았다. #생각1. 크기 .. 2020. 3. 16.
백준 | 4344번 평균은 넘겠지, 파이썬 이번 문제는 좀 간단했던거 같다. 간단해도, 머리속으로 차분히 정리해보는 습관을 들이려 한다. #생각1. 첫째 줄에는 테스트 케이스의 개수를 받는다. #생각2. 둘째 줄부터는 각 테스트 케이스 마다 학생의 수가 먼저 주어지고, N명의 점수가 추가로 주어진다. #생각3. 결과는 각 케이스마다 평균을 넘는 학생들의 비율을 반올림해서 소수 셋째자리까지 출력하는 것 #생각4. 받아온 각 케이스의 평균을 먼저 구한다. #생각5. 반복문을 돌리면서 평균보다 높으면 count에 1을 더한다. #생각6. 비율이니까 count의 수를 전체 학생수로 나누고 100을 곱하면 비율이 나온다. 내가 처음 작성한 코드는 아래와 같다. case_num = int(input()) case_list = list() i = 0 whil.. 2020. 3. 16.