전체 글 25

[백준 / 파이썬] 백준 15649번 문제 풀이: N과 M (1)

문제자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.  문제 해결 전체 코드import sysN,M=list(map(int,sys.stdin.readline().split()))def permutation(N,M,sequence,visited): if len(sequence)==M: print(*seq..

[파이썬 / python] 클래스 메서드(Class Method)와 스태틱 메서드(Static Method)

클래스 메서드와 스태틱 메서드는 언제 어떻게 활용하는 것일까? 다음의 예시를 보며 이해해 보자class Car: # 클래스 속성(클래스 변수) total_cars = 0 def __init__(self, brand, model, year): # 인스턴스 속성(인스턴스마다 별도로 존재) self.brand = brand self.model = model self.year = year # 인스턴스를 만들 때마다 클래스 속성을 변경(전체 생산된 차량 수) Car.total_cars += 1 def get_car_info(self): """ 인스턴스 메서드 예시. 첫 번째 인자로..

python 2025.01.24

[파이썬 / python] PEP 8 - 코드를 읽기 쉽게 작성해보자

1. 들여쓰기 (Indentation)기본적으로 공백(스페이스) 4칸을 사용한다.탭(Tab)과 공백을 섞어서 쓰지 않는 것이 좋다.def example_function(): # 4칸 공백으로 들여쓰기 message = "Hello, PEP 8" print(message)2. 최대 줄 길이 (Maximum Line Length)한 줄에 79자를 넘기지 않는 것을 권장한다.주석이나 도큐멘테이션 문자열은 한 줄에 72자 이하로 제한하는 것을 권장한다.코드가 너무 길어지면 백슬래시(\)나 괄호 등을 사용해 적절히 줄을 나눈다.print("이 문장은 79자를 넘지 않도록 적절히 줄 바꿈을 해줘야 한다. " "PEP 8 스타일 가이드를 준수하기 위해서다.")3. 공백 (Whitespace)..

python 2025.01.23

[파이썬 / Python] 클래스(Class)와 객체(Object)

1. 클래스(Class)와 객체(Object)란클래스(Class): 어떤 객체(인스턴스)를 만들지, 그 특성과 동작(변수와 메서드)을 정의해 둔 설계도, 틀, 템플릿이다.객체(인스턴스, Object): 클래스를 기반으로 실제 메모리에 생성된 실체로, 클래스에 정의된 특성을 가질 뿐 아니라 서로 다른 상태를 가진다. 이해하기 쉽게 예를 들면 클래스를 ‘건물을 짓기 위한 설계도(청사진)’ 라고 생각해 보자.그렇다면 객체(인스턴스)는 설계도를 바탕으로 실제 땅 위에 지어진 ‘건물’ 이라고 할 수 있다. 설계도(클래스)는 건물을 어떻게 지을지, 방은 몇 개를 둘지, 창문은 몇 개를 달지 등 구조와 특성을 정의한다. 아직 건물 자체가 생긴 상태는 아니지만, “건물은 이런 모양과 기능을 가져야 한다”는 구체적인 계..

python 2025.01.23

[러닝] 대구마라톤대회 (DAEGU MARATHON)에 참여하는 당신을 위한 정보

2025년 2월 23일 대구 마라톤 대회에 참여하는 여러분들을 위해 대회 정보를 가져와 봤어요https://daegu.go.kr/daegumarathon/index.php 대구마라톤 DAEGU MARATHON이 사업은 문화체육관광부와 국민체육진흥공단의재정지원을 받아 시행합니다.daegu.go.kr  대회는 엘리트 부문, 마스터즈 부문으로 참가할 수 있어요.아마 대부분의 경우에는 마스터즈 부문으로 참가하지 않을까 싶네요. 마스터즈 부문 대회 개요를 보실게요 2025 대회 개요일시/장소일시: 2025년 2월 23일(일) 09:00 시작장소: 대구스타디움 및 시내 일원대회 종목풀코스: 42.195km하프코스: 21.0975km10km건강달리기: 약 5km참가 인원총 40,000명참가비풀코스: 70,000원하프..

취미생활/러닝 2025.01.17

[백준 / 파이썬] 백준 1748번 문제 풀이: 수 이어 쓰기 1

문제 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.1234567891011121314151617181920212223...이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. 출력첫째 줄에 새로운 수의 자릿수를 출력한다.  문제 해결문제 해결 방법에는 2가지가 있다. 첫번째 방법은 숫자를 0에서부터 N(입력값)까지 모든 숫자에 대해 자릿수를 모두 더 하는 방법이다.이 방법은 O(n)의 시간복잡도로 직관적이긴하나 비효율적인 방법이다.import sysN=int(sys.stdin.readline())answer=0while N!=0: answer+=len(st..

[백준 / 파이썬] 백준 6064번 문제 풀이: 카잉 달력

문제최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 x 은 그들 달력의 마지막 해로서, 이 해에 세상의 종말이 도래한다는 예언이 전해 온다.예를 들어, M = 10 이고 N = 12라고 하자. 첫 번째 해는 로 표현되고, 11번째 해는 로 표현된다. 은 13번째 해를 나타내고, 는 마지막인 60번째 해를 나타낸다.네 개의 정..

[러닝] 일반인 러너의 2024 국제국민마라톤 결과는??

2024년 10월 3일 드디어 국제국민마라톤 하프에 참가했어요저의 첫 마라톤이기도 한데요그래서 그런지 굉장히 기대가 많이 되는 마라톤이었습니다. https://xn--3e0bu4qnybp6ccs7b.com/ 국제국민마라톤 xn--3e0bu4qnybp6ccs7b.com자세한 정보는 여기로 준비 과정 저의 준비 과정을 보여드리자면  제가 러닝을 시작한 7월 슬슬 러닝에 맛을 들이기 시작한 8월(근데 더워서 많이 못뛰었..) 대회를 준비한 9월정말 열심히 뛰었습니다ㅠㅠ 마라톤을 뛴 10월 사실 체계적으로 준비했다는 말은 못하겠네요.런닝하러 나가면 얼마나 뛸지를 그날 그날 정했습니다...시간이 많진 않았어서 5km를 가장 많이 뛰었고대회가 얼마 남지 않은 보름전 부터는 시간을 좀 더 내서 LSD위주로 달리기를 ..

취미생활/러닝 2025.01.12

[자료 구조 / data structure] 그래프(graph)를 표현하는 방법 3가지.

그래프란?그래프(Graph) 는 노드(정점, Vertex)와 간선(Edge) 의 집합으로 이루어진 수학적 구조입니다.노드들은 어떤 대상을 의미하고, 간선은 이들 노드 사이의 관계나 연결을 표현합니다.그래프 필수 구성 요소정의에서도 알 수 있듯이 그래프는 노드와 간선의 집합으로 이루어져 있습니다.노드(정점, Vertex)그래프에서 다루고자 하는 대상(개체)입니다.간선(Edge)두 노드를 연결하는 선(관계)입니다. 유향 그래프(Directed Graph) 에서는 간선이 방향성을 가집니다.예: 무향 그래프(Undirected Graph) 에서는 간선이 방향성을 갖지 않습니다.예: 예를 들어, “사람들 간의 친구 관계”를 표현한다면 각 사람은 노드 친구 관계는 간선이 될 수 있습니다.그래프를 표현하는 방법1. ..

[파이썬 / python] 객체 지향 프로그래밍(Object Oriented Programming)

객체 지향 프로그래밍(Object Oriented Programming)이란객체를 프로그램의 기본 단위로 보고 객체의 행동을 설명하는 프로그램 설계 방법론의 일종이다.   조금 어렵게 느껴질 수 있으니 다음의 예시를 보며 이해해 보자 먼저 돈이 50원 있는 사람 A,  돈이 30원 있는 사람 B 가 있다고 해보자1-1A_money=50B_money=30def A_pay_money(money): global A_money A_money-=moneydef B_pay_money(money): global B_money B_money-=money A_pay_money(20)B_pay_money(10)print(A_money)print(B_money)더보기3020A와 B가 돈을 낸다고 ..

python 2024.09.29