본문 바로가기

PYTHON20

PYTHON(3)-객체지향(OOP) 안녕하세요. 오늘은 객체 지향 프로그래밍에 대해서 공부해보겠습니다.. 객체 지향 프로그래밍(Object Oriented Programming) 클래스는 프로그램을 이용해서 객체를 만들어주는 역할을하고 객체는 클래스에 의해 만들어지는 결과물을 말합니다. 1.클래스란?(Class) 클래스는 속성(attribute)와 행위(action)으로 구성됩니다. 클래스의 속성은 자료를 나타내며, 변수와 필드의 개념입니다. 클래스의 행위는 자료를 연산하거나 조작하는 역할로, 메소드와 함수의 개념을 의미합니다. 그럼 함수와 클래스의 차이에 대해서 말해보자면, 함수는 정의 후 호출되는 과정을 가지고 있습니다. 클래스는 정의하고 객체를 생성한뒤 생성한 객체를 사용하는 과정을 거쳐야합니다. 함수형식) def 외부함수(매개변수).. 2024. 1. 9.
13305.주유소 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 1.설명 제가 생각한 방법은 n개의 도시가 할때 첫번쨰 도시에서 두번쨰 도시로 갈때 최소비용으로 채워야하므로 cost값을 길이[0]*도시가격[0]으로 시작하고, 그 다음 price중 최소값이 존재할때 거기서 기름을 다 채우는 방법으로 계산했습니다. 문제를 처음 봤을떄 BFS(best first search)를 활용하여 구하려고했으나. 그것보다 쉬운 방법이 있을꺼같아서 이방법으로 풀어.. 2024. 1. 9.
9017.크로스 컨트리 https://www.acmicpc.net/problem/9017 9017번: 크로스 컨트리 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 케이스로 주어진다. 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 T 가 주어진다. 두 번째 줄부터는 두 줄에 하나의 www.acmicpc.net 1.설명 위 그래프는 함수 선언할때 고민했던 그림입니다. 이번 문제 돌리면서 가장 헷갈렸던 부분이 2개정도 있는데 1)팀원이 6명이 안될시에 NaN값을 어떻게 넣을지에 대한 고민 2)점수를 어떻게 줘야할지? 에 대해서 고민하다가 그냥 6명이 안되는 팀들은 제거를 한뒤 점수 입력을 하자라는 생각이 들었습니다. def main(): T = int(input()) for _ in range(T): N.. 2024. 1. 8.
Python(2)-모듈,패키지 머신러닝이랑 딥러닝 파트를 공부하다 보면 수많은 모듈과 패키지를 사용하는걸 볼 수 있습니다. __name__=="__main__" 위의 코드같은걸 수많이 보고 써왔지만, 정확히 뭘 의미하는지 알지 못하고 썼던거같아요. 저도 수많은 코드와 논문들을 보면서 제대로 개념이 안잡혀서 맨날 헷갈렸는데 이.번.기.회에 한번 제대로 이해해보려고 해요 :) 1.모듈 python은 모듈이라는 기능을 활용해 코드를 분리하고 공유합니다. 모듈은 여러 변수와 함수를 가지고 있는 집합체로, 크게 표준 모듈, 외부 모듈로 나뉘는데, 기본 내장되어 있는 모듈은 '표준 모듈', 다른 사람이 만든 모듈을 '외부 모듈'이라고 부릅니다. 1)표준 모듈 표준 모듈은 위에서 말했다 시피 기본 내장되어 있는 모듈을 의미합니다. 따로 다운할 필.. 2024. 1. 5.
1244.스위치 끄고 켜기 https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1.설명 일단 남자랑 여자 조건에 따른 행동을 맞게 해줘야 하는데, 남자 같은 경우는 3이면 3,6 같이 배수만 바꾸면 되므로 쉽게 해결했다. 여자는 기준을 잡아 대칭인 곳 까지 찾아 변경해야합니다. 한칸씩 증가하면서 같을때까지 증가하다 아니면 바로 break문으로 빠지게 해결했다. 마찬가지로 범위를 벗어나는 상황일때 필요한 상황을 보면서 진행했습니다. 2.코드 def change(num):.. 2024. 1. 4.
8979.올림픽 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 1.설명 이 문제에서 배워야할껀 2차원 배열 입력이라고 생각이됩니다!! 2차원 배열 입력받는 법에 대해서 알아볼께용 가로A, 세로 B길이의 배열을 선언한다고 가정합시다.(행렬로 하면A가 column,B가 row입니다.) 입력받을때 B의 크기는 반드시 알아야됩니다. 1.원소 하나씩 입력받기 arr = [for _ in range(B)] // 2차원 배열의 가로길이 : B for.. 2024. 1. 3.