본문 바로가기

Python24

[백준]1065. 한수 (파이썬, python) https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 1. 문제 분석 먼저 문제를 분석해보자. 1. 각 자리가 등차수열을 이루는 양의 정수를 '한수'라고 정의한다. 2. N이 주어지면, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력해라. 2. 문제 해결 방향 이 문제의 핵심은 해당 수가 '한수'인지, 아닌지를 구별하는 방법을 만들어내는 것이다. 우선 각 자리가 등차수열을 이루면 참이므로, 1~9, 10~99는 모두 한수가 될 수 밖에 없다.. 2021. 11. 17.
[백준]4673. 셀프 넘버 (파이썬, python) https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 1. 문제 분석 이번 문제를 분석해보자면 1. 기존 수를 n이라고 하면, 다음 수 d(n)을 구하는 공식은 n과 n의 각 자리수를 더하는 것이다. ex) d(35) = 35 + 3 + 5 = 43 2. 이때, 35는 43의 생성자라고 한다. 3. 이런 생성자가 없는 숫자를 셀프 넘버라고 하고, 10000보다 작거나 같은 셀프 넘버들을 출력해라. 2.. 2021. 11. 17.
21. python에서 줄바꿈 없는 print 사용하기 python의 print함수는 줄바꿈이 default값으로 지정되어 있습니다. 하지만, 코드를 작성하다 보면 줄바꿈이 필요없는 경우가 생길 수 있습니다. 줄을 추가로 바꾸기 위해서는 '\n'이 필요하지만, 기본적인 줄바꿈을 없에기 위해서는 추가적인 방법이 필요합니다. 1. python print의 default 값 print('Hello world', end='\n') 기존 python print의 default값은 다음과 같습니다. print 함수를 마칠 때 뒤에 '\n'이 기본적으로 붙는 구조입니다. 2. 줄바꿈 없는 print print('Hello world', end='') 따라서 줄바꿈 없는 print를 사용하려면, end 자리에 빈칸을 삽입하면 됩니다. 만일에 print이후에 공백, 혹은 다.. 2021. 2. 25.
20. 소수 판별, 에라토스테네스의 체 코드로 소수를 판별할 수 있는 방법은 다양합니다. 그 중에서 효과적인 방법인 에라토스테네스의 체에 대하여 설명하겠습니다. 에라토스테네스의 체로 N까지의 소수를 확인하는 방법은 다음과 같습니다. 1. 2 ~ N까지의 모든 자연수를 나열한다. 2. 남은 수중 아직 처리하지 않는 수 i를 고른다. 3. i의 배수를 모두 제거한다. 4. 2, 3번 과정을 반복한다. 여기서 i는 N의 제곱근 수 까지만 구해도, 소수 리스트를 만들 수 있습니다. 따라서 이를 파이썬 코드로 표현해 보자면 n = int(input()) # n 이하의 자연수 에서 소수 찾기 num = [True for i in range(n + 1)] # 소수 판단 bool list for i in range(2, int(n**0.5) + 1): # .. 2021. 1. 29.
19. python, list.count 함수(문자열에서 특정 값 개수 찾기) list, 혹은 문자열에서 특정 값의 개수를 찾고 싶은 경우, list.count함수를 활용하면 됩니다. 찾는 값이 없다면, 0을 return 합니다. s = "Hello world" print("s.count('l') :", s.count('l')) print("s.count('o') :", s.count('o')) # 출력 # s.count('l') : 3 # s.count('o') : 2 print("s.count('c') :", s.count('c')) # 출력 # s.count('c') : 0 2021. 1. 16.
18. python, set 함수(리스트에서 중복 제거) 파이썬에서 set함수를 통해 list의 고유한 값만 가져올 수 있다. tmp = ['a', 'a', 'b', 'b', 'b', 'c'] print(set(tmp)) # 출력 # {'a', 'b', 'c'} 또한 set을 사용한 경우 indexing을 할수 없으므로, list으로 바꿔준 후 작업한다. tmp = ['a', 'a', 'b', 'b', 'b', 'c'] # print(set(tmp)[0]) # 오류 발생함 print(list(set(tmp))[0]) # 출력 # 'a' 2021. 1. 16.
17. python find 함수(백준 10809번 python) 백준 10809번 문제를 풀던 와중 python find함수에 대해 알게 되어서 게시글을 작성하게 되었습니다. 처음에는 위 문제를 풀기 위하여 직접 a~z까지의 문자열 list와 입력받은 문자를 비교하여 값을 출력하는 코드를 사용했습니다. import string asc_list = list(string.ascii_lowercase) s = input() # 직접 비교한 경우 result = '' for alp in asc_list: counter = 0 for idx, tmp in enumerate(s): if alp == tmp: result += str(idx) + ' ' counter = 1 break if counter == 0: result += '-1 ' print(result) 하지만 구글.. 2021. 1. 16.
16. python 아스키 코드 변환 방법 python에서 입력 받은 문자를 아스키 코드 숫자로 변환하거나, 아스키 코드 숫자를 문자로 변환하는 방법은 간단하다. ord(문자) : 입력 받은 문자를 아스키 코드로 chr(숫자) : 입력 받은 아스키 코드 숫자를 문자로 print(ord('A')) # 출력 # 65 print(chr(65)) # 출력 # A 2021. 1. 16.