본문 바로가기

Python50

[BOJ] 2739번 구구단 풀이 [BOJ] 2739번 구구단 문제 입력받은 N에 대해 9단까지 출력하는 간단한 문제다. import sys if __name__ == '__main__': N = int(sys.stdin.readline().rstrip()) for i in range(1, 10): print(f'{N} * {i} = {N*i}') 나는 f-string 방법이 매우 편하기에 이렇게 썼다. 여기서 range(1, 10)은 i에 1부터 9까지의 숫자만을 넣는다! 만약 range(10)이라고 하면, 0부터 9까지의 숫자를 쓰고, 10은 쓰지 않는다. 숫자가 줄어드는 방향으로도 range를 쓸 수 있으며, 이 때에는 range(10, 1, -1) 처럼 쓸 수 있다. 이 때에는 1을 쓰지 않는다. 즉, range는 마지막 숫자를 .. 2022. 7. 15.
[BOJ] 25083번 새싹 풀이 [BOJ] 25083번 새싹 문제 10171번 고양이, 10172번 개와 같은 이스케이프 문자를 처리하는 문제다. if __name__ == '__main__': print(' ,r\'\"7') print('r`-_ ,\' ,/') print(' \\. \". L_r\'') print(' `~\\/') print(' |') print(' |') 똑같이 작은 따옴표('), 큰 따옴표(") 그리고 백슬래시(\)를 주의하자. 2022. 7. 15.
[BOJ] 10172번 개 풀이 [BOJ] 10172번 개 문제 10171번 고양이와 같이 이스케이프 문자를 아는지를 물어보는 문제다. if __name__ == '__main__': print('|\\_/|') print('|q p| /}') print('( 0 )"""\\') print('|"^"` |') print('||_/=\\\\__|') 똑같이 작은 따옴표('), 큰 따옴표(") 그리고 백슬래시(\)를 주의하자. 2022. 7. 15.
[BOJ] 10171번 고양이 풀이 [BOJ] 10171번 고양이 문제 이스케이프 문자를 알고 있는지를 확인하는 문제다. if __name__ == '__main__': print('\\ /\\') print(' ) ( \')') print('( / )') print(' \\(__)|') 작은 따옴표('), 큰 따옴표(") 그리고 백슬래시(\)를 주의하자. 2022. 7. 15.
[BOJ] 10951번 A+B - 4 풀이 [BOJ] 10951번 A+B - 4 문제 A와 B를 입력받아 A+B를 출력하는 문제다. 다만 예시 입력을 보면 알다시피 입력이 중간에 멈추고 이를 끝내는 방식이 없기에 프로그램을 EOFError 처리를 통해 멈춰야 한다! if __name__ == '__main__': while True: try: A, B = map(int, input().split()) print(A + B) except EOFError: break 모든 메이저 언어는 EOF 에러를 처리해주는 도구들이 존재한다. Python은 try - except문을 이용해서 처리할 수 있다. try - except문은 간단하다. 일단 try문 안의 것을 하고, 그 사이에 어떤 에러가 발생하면 except문으로 빠진다. except 뒤에 어떤 e.. 2022. 7. 15.
[BOJ] 15552번 빠른 A+B 풀이 [BOJ] 15552번 빠른 A+B 문제 최대 1,000,000개의 A+B 연산을 한정된 시간 내에 수행하는 코드를 만들어야 하는 문제다. 여기서 우리는 처음으로 빠른 입출력을 배우게 될 것이다. 이 스킬은 앞으로도 여러분의 실행 속도를 높일 것이기에 반드시 배워야 한다. import sys if __name__ == '__main__': T = int(sys.stdin.readline().rstrip()) for _ in range(T): A, B = map(int, sys.stdin.readline().rstrip().split()) print(A + B) 이 문제의 핵심은 파이썬의 빠른 입력을 써야 하는 것이다. sys.stdin.readline().rstrip() 을 쓰면 된다. 당연하겠지만, 이.. 2022. 7. 14.
[BOJ] 1000번 A+B 풀이 [BOJ] 1000번 A+B 문제 두 정수 A와 B를 입력받아, A+B를 출력하는 문제다. 백준에 처음 들어오는 사람이라면 매우 높은 확률로 처음 만나는 문제다. if __name__ == '__main__': A, B = map(int, input().split()) print(A + B) input() 함수는 우리가 enter키를 누르기 전까지의 모든 입력을 문자열로 받는다. 그렇기에 예제 입력을 A와 B라는 변수에 나눠서 넣기 위해 split()이라는 메서드(method)를 사용한다. 만약 메서드를 모른다면 함수 안의 함수라고 적절히 이해하고 넘어가자. 자주 볼 단어기에 알아보는 것을 강권한다. 이 split()은 () 안의 문자를 기준으로 문자를 나눠준다. 만약 () 안에 아무것도 없다면 공백 문.. 2022. 7. 14.
[파이썬 알고리즘 #2] 기본 입출력 - 출력 기본 입출력에서 가장 먼저 출력에 대해 다뤄보고자 한다. 아마 입력과 출력을 하나씩 분배해서 쓰면 딱 알맞은 분량의 글이 하나씩 나올 것 같다. 이번 글부터는 PS를 하면서 시행착오를 겪었던 부분들에 대해서 많이 다룰 것이다. 출력을 입력보다 먼저 배우는 이유는? 간단하게 말하면, 입력보다 출력이 쉬워서다. 진짜다. (...) 출력의 경우, 파이썬에서는 print()만으로 출력이 끝나며, C에서는 printf() 함수를, C++에서는 cout을 쓰면 된다. 그 뒤 또는 사이에 우리가 보고자 하는 변수를 넣기만 하면 그만이다. 그러면 프롬프트에서 그 결과를 바로 볼 수 있다. 하지만 입력의 경우엔 우리가 신경 써줘야 할 부분이 출력보다 매우 많아지게 된다. 프롬프트에 우리가 직접 입력하는 간단한 방법이면 .. 2022. 7. 10.
[파이썬 알고리즘 #1] 기본 입출력 - 들어가기 앞서 대망의 첫 번째 글이다. 일단 이 블로그에 쓰는 글의 주요 타겟층은 어느 정도 배운 초보 - 중수쯤에 뒀다. 내가 고수가 아니라서... 그리고 글의 스타일은 너무 코딩 이야기만 하진 않으면서 재미를 약간 추구하고자 한다. 물론 핵심은 꼭 짚을 것이다. 어떤 주제로 글을 써야 할지 많이 고민했다. 그리고 파일 입출력을 첫 주제로 잡았다. 그 이후의 순서는 아마도 백준 안에 있는 단계별로 풀어보기를 적절히 참고해서 따라갈 것이다. 입출력이 왜 중요한가? 너무나 당연한 진리이지만, 프로그램을 짤 때 가장 기초가 되는 부분은 입출력이다. 개발자라면 입력과 출력을 설정할 줄 알아야 하고, 그 입력과 출력 간의 관계를 알고리즘화 하여 코딩해야 한다. 적어도 내가 아는 선에선 그렇다. 따라서 알고리즘을 코딩하기 위해.. 2022. 7. 8.
[파이썬 알고리즘 Prologue] 아무리 생각해도 나는 코딩 초보다 내 인생을 몇 번 곱씹어봐도 나는 코딩 초보밖에 되지 않는다고 생각한다. 지금도 그렇게 생각한다. 이걸 지독하게 느낀 때가 대학교 2학년 2학기 파일처리론을 들었을 때다. 2016년 때 일이다. C언어로 했던 기억이 나는데, 파일을 직접 불러오고, 포인터를 이용해서 swap하고, 다시 저장하는 과제가 첫 번째였다. 다행히 2학년 1학기 때 열심히 자료구조를 듣고 과제를 다 내서 과제 제출 마감 30분 전에 냈던 기억이 난다. 하지만 그 과목에서 제대로 낸 과제는 그거 하나뿐이었다. B+ 트리를 갑자기 짜라니... C로 짜라는 hash는 너무 어려웠고, 마지막 과제는 트라이(Trie)였다. 난 결국 첫 번째를 제외한 다른 모든 과제들은 기본 점수만 받았고, 대학교에 와서 처음으로 좌절했다. 이 과목 말고도.. 2022. 7. 7.
728x90