백준 10250번: ACM 호텔 (수학, 사칙연산) https://www.acmicpc.net/problem/10250 문제ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태..
Read more백준 2884번: 알람 시계 (수학, 사칙연산) https://www.acmicpc.net/problem/2884 문제상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다.이런 상근이를 불쌍하게 보던 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 ..
Read more백준 2439번: 별찍기 (구현) https://www.acmicpc.net/problem/2439문제첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.입력첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.출력첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.예제 입력 15예제 출력 1 * ** *** *********풀이n = int(input())for i in range(1, n + 1): print(" " * (n - i) + "*" * i)이 문제를 풀기 위해선 일단 반복문을 어떻게 구성을 해야할지 생각해야 합니다.입력을 받은 수만큼, 왼쪽에는 공백을 출력, 오른쪽에는 별 출력.그러면 반복..
Read more백준 2753번: 윤년 (수학, 구현, 사칙연산) https://www.acmicpc.net/problem/2753문제연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.입력첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.출력첫째 줄에 윤년이면 1, 아니면 0을 출력한다.예제 입력 12000예제 출력 11예제 입력 21999예제 출력 20풀이n..
Read more백준 2475번: 검증수 (수학, 구현, 사칙연산) https://www.acmicpc.net/problem/2475문제컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.입력첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.예제 입력 10 4 2 5 6..
Read more백준 10871번: X보다 작은 수 (구현 문제)https://www.acmicpc.net/problem/10871문제정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.입력첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.출력X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.예제 입력10 51 10 4 9 2 3 8 5 7 6예제 출력1 4 2 3풀이N, X = map(int, input().split())A = list(map(int,..
Read moreLogging (로깅)로깅은 프로그램 실행 중 발생하는 사건들을 기록하여 디버깅, 오류 추적, 시스템 모니터링 등을 보조하는 행위입니다.로깅을 통해 코드의 실행 흐름과 상태를 파악할 수 있으며, 시스템의 상태를 실시간으로 모니터링하여 문제 발생 시 빠르게 대응할 수 있습니다.Logging ModulePython의 logging 모듈은 표준 라이브러리로 제공되며, 다양한 로그 메시지를 기록할 수 있는 유연한 로깅 시스템을 제공합니다. Logger: 로그 메시지를 기록하는 인터페이스입니다. 애플리케이션 코드에서 직접 호출됩니다.Handler: 로그 메시지를 특정 대상(파일, 콘솔 등)으로 전송합니다.Formatter: 로그 메시지의 형식을 지정합니다.Level: 로그 메시지의 중요도를 나타냅니다. (DEBU..
Read moreAdvanced Data Type (고급 자료형)이번 글에서는 Python의 Advanced Data Type (고급 자료형)에 데하여 설명을 해보겠습니다.List (리스트)List(리스트)는 순서가 있는 가변 길이의 Sequence 자료형입니다.주요한 특징은, 순서를 유지하고, 중복순서를 하용하며, 요소의 추가, 삭제, 수정이 가능하다는 점입니다.list_example = [1, 2, 3, 4]list_example.append(5) # [1, 2, 3, 4, 5]list_example.remove(3) # [1, 2, 4, 5]Set (세트)Set(세트)는 서가 없는 중복되지 않은 요소의 집합입니다.주요한 특징은, 순서가 없고, 중복순서를 하용하지 않으며, 집합 연산 (교집합, 합집합, 차집합)에..
Read moreException Handling (예외 처리)예외 처리는 프로그램 실행 중 발생하는 오류를 관리하고 처리하는 기법입니다.예외 처리를 통해 프로그램의 비정상 종료를 방지하고, 사용자에게 유용한 오류 메시지를 제공하여 프로그램의 안정성과 신뢰성을 높일 수 있습니다.예외와 오류의 차이오류 (Error): 프로그램 실행을 중단시키는 심각한 문제로, 일반적으로 복구가 불가능한 상황을 의미합니다.예를 들어, 메모리 부족, 시스템 충돌 등이 있습니다.예외 (Exception): 프로그램 실행 중 발생할 수 있는 처리 가능한 오류로, 예외 처리를 통해 복구할 수 있습니다.예를 들어, 파일을 찾을 수 없음, 0으로 나누기 등이 있습니다.예외의 종류내장 예외 (Built-in Exceptions), 사용자 정의 예외 (..
Read more모듈 (Module)모듈은 파이썬 코드의 논리적인 단위로, 관련된 함수, 클래스, 변수 등을 하나의 파일에 모아놓은 것입니다.모듈을 사용하면 코드의 재사용성과 유지보수성을 높일 수 있으며, 코드의 구조를 더 체계적으로 관리할 수 있습니다.하나의 .py 파일이 하나의 모듈을 의미합니다.모듈 가져오기import 키워드를 사용하면 전체 모듈을 불러올 수 있습니다.import mathprint(math.sqrt(16)) # Output: 4.0from 키워드를 사용하면 모듈에서 특정 함수, 클래스 등을 가져올 수 있습니다.from math import sqrtprint(sqrt(16)) # Output: 4.0as 키워드를 사용하여 모듈이나 항목에 별칭(alias)을 지정할 수 있습니다.import nump..
Read more