Baekjoon 26

[Python/파이썬] 백준 알고리즘 4673번 - 셀프 넘버

생성자가 없는 숫자가 '셀프 넘버' 이고 이 셀프 넘버들을 쭉 나열하는 프로그램을 짜보라는 문제이다. # 함수 d(n) def d(n): # 생성자 n을 이용해 d(n)을 만드는 수식 n = n + sum( map(int, str(n)) ) return n # 셀프 넘버가 아닌 수들(생성자가 있는 수들)이 들어갈 집합 nonSelfNum = set() # nonSelfNum 집합에 들어갈 수들을 찾아 넣기 for i in range(1, 10001): nonSelfNum.add( d(i) ) # 셀프 넘버들을 출력하기 for j in range(1, 10001): if j not in nonSelfNum: print(j) 먼저 프로그램의 구조는 다음과 같다. 1. 셀프 넘버가 아닌 수들(생성자가 있는 수..

[Python/파이썬] 백준 알고리즘 1110번 - 더하기 사이클

N = input() if int(N) < 10: N = "0" + N calNum = N[1] + str(int(N[0]) + int(N[1]))[-1] count = 1 while calNum != N: calNum = calNum[1] + str(int(calNum[0]) + int(calNum[1]))[-1] count += 1 print(count) 제일 처음 생각한 방법으로 N을 문자열로 받은 뒤 인덱싱해 푸는 방법이었다. N = int(input()) new_N = N cnt = 0 while True: new_N = (new_N % 10) * 10 + (new_N // 10 + new_N % 10) % 10 cnt += 1 if new_N == N: break print(cnt) 새롭게 배..

[Python/파이썬] 백준 알고리즘 10951번 - A+B - 4

while문으로 계속 입력을 받다가 입력이 없으면 출력을 멈추는 코드를 짜라는 것이다. while True: try: A, B = map(int, input().split()) except: break print(A + B) 변수 A, B에 입력이 없으면 에러가 나게 된다. 때문에 try-except 구문을 써야한다. try 구문에는 에러가 발생할 여지가 있는 문장을 작성하고, except 구문에는 에러가 발생할 경우 실행시킬 문장을 작성한다. 1. try-except 구문은 에러가 발생할 가능성이 있는 코드를 처리할 수 있는 코드이다. (ex. 입력 상황에서 문자를 입력해야하는데 숫자를 입력해 에러가 난다는 등) 에러가 발생할 여지가 있는 경우에 try-except 구문을 이용하면 에러가 발생돼도 프로..

[Python/파이썬] 알고리즘 지엽 정리(계속 수정 및 추가)

1. input().split()을 쓰면 string 타입의 element들을 갖는 List를 얻는다. 2. while문에서 while문 밖에 변수랑 안에 변수가 중복되는 것 같을 때 while의 조건을 바꾸고 break를 이용하는 것도 방법이 될 수 있다. 3. 하나의 변수에 여러 element가 있는 list를 받으려고 할 때는 그냥 map만 쓰면 안된다. (ex. numList = map(int, input().split())) 밖에 list()로 감싸줘야한다. ( list(map(int, input().split())) ) 또는 파이썬의 컴프리헨션(comprehension)을 이용해 할 수도 있다. [int(i) for i in input().split()] 을 써서 해도된다. (속도는 compr..

[Python/파이썬] 백준 알고리즘 15552번 - 빠른 A+B

위에서 언급된 참고 글 링크 : https://www.acmicpc.net/board/view/22716 글 읽기 - 추가 설명 및 다른 언어 빠른 입출력 방법 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net import sys T = int(input()) for _ in range(T): A, B = map(int, sys.stdin.readline().split()) print(A + B) 파이썬의 경우 sys을 import해 sys.stdin.readline()을 사용하면 더 빠르게 입력을 받을 수 있다고 한다. 1. sys.stdin.readline()을 이용해서 input() 을 대체할 수 있고 더 빠르다.

[Python/파이썬] 백준 알고리즘 2588번 - 곱셈

A = int(input()) B = input() AxB0 = A * int(B[0]) AxB1 = A * int(B[1]) AxB2 = A * int(B[2]) AxB = A * int(B) print(AxB2, AxB1, AxB0, AxB, sep='\n') A는 int로 형변환을 하고 B는 문자로 받는다. (인덱싱을 하기위해서) 1. 공백없이 붙어있는 입력값에서 일정 부분을 떼서 사용하고 싶을 땐 문자로 바꾸어 인덱싱 2. print 할 때 sep 파라미터를 사용하면 print 함수의 출력값이 여러 개 일 때 각 값의 사이사이에 삽입할 문자를 지정할 수 있다.

반응형