반응형 전체 썸네일형 리스트형 [Python] 6. 클래스 (1) - 클래스 기본 사용법 (객체, 메서드) [목차] 1. 클래스(Class)란? 2. 객체와 인스턴스(Instance) 3. 클래스와 메서드 만들기 1. 클래스(Class)란? 클래스(Class)란, 쉽게 말해 객체(instance)를 만들어내기 위한 '틀'이다. '객체지향 프로그래밍'의 핵심이기도 하다. 주로 붕어빵에 비유하는데, 붕어빵을 객체라고 한다면 클래스는 붕어빵 틀에 해당한다. 즉, 동일한 무언가를 계속해서 만들어낼 수 있는 형태이며 만들어낸 객체들은 모두 고유한 성격을 가진다. 단, 객체별로 갖는 기능은 모두 동일하다. 붕어빵을 예시로 들면, 같은 틀로 만들어낸 여러 개의 붕어빵 중에서 하나를 조금 먹더라도 다른 붕어빵에는 아무 영향을 미치지 않는 것과 동일하다. 클래스를 이용하는 이유는 무엇일까? 예를 들어서 2명의 학생이 있고, .. [Python] 5. 함수 (2) - 함수 심화 기능(재귀, 매개변수, 람다) [목차] 1. 재귀 호출 2. 다양한 형태의 매개변수 3. 람다 표현식 1. 재귀 호출 재귀 호출(recursive call)이란, 함수 안에서 함수 자신을 호출하는 방식을 말한다. 주로 알고리즘을 구현할 때 많이 이용된다. def func(): print(1) func() func() 위의 코드는 1이 무한히 출력되는 방식이다. 파이썬에서는 재귀의 깊이(recursion depth)가 최대 1000으로 정해져 있어서, 1000번을 초과해서 재귀 호출되면 에러가 발생한다. ("RecursionError: maximum recursion depth exceeded while calling a Python object") 함수를 A라고 하고 함수 내에서 호출하는 자신을 A'이라고 하면, A에서 A'를 호출하.. [Python] 5. 함수 (1) - 함수의 구조 [목차] 1. 함수(Function)란? 2. 함수(Function)의 형태 1. 함수(Function)란? 코드를 작성하다보면 들어가는 값만 달라질 뿐 같은 작업을 여러번 반복해야할 때가 있다. 그런 코드를 반복해서 작성하면 매우 비효율적이다. 이런 경우에 임의의 값에 대해서 동일하게 작동하는 틀을 미리 만들어놓고, 필요할 때마다 값을 넣어서 결과값을 구할 수 있도록 하는 기능을 '함수'라고 한다. 어떠한 타입의 값이 들어오더라도 항상 동일하게 입/출력을 수행해주는 작업을 하는 print, input 등도 모두 파이썬에서 미리 만들어진 함수이다. 1. 함수의 장점 코드의 용도를 구분할 수 있다. 코드를 여러번 재사용할 수 있다. 코드의 길이가 짧아진다. 오류 발생 위치를 빠르게 찾을 수 있다. 2. 함.. [Python] 4. 조건문 & 반복문 (if, for, while) [목차] 1. 조건문 (if - elif - else) 2. 반복문 (for) 3. 반복문 (while) 1. 조건문 (if - elif - else) 조건문은 특정 조건을 만족할 때만 코드를 수행하는 문법이다. 간단한 예시로 성적 부여를 생각해보자. A는 90점 이상, B는 80점 이상, C는 70점 이상, F는 70점 미만이라고 하자. 어떤 학생의 점수를 받았을 때 성적을 매겨주는 코드를 작성한다면, 이 점수가 90점 이상이면 A를 주고 그렇지 않으면 A는 줄 수 없다. 80점 이상 ~ 90점 미만이면 B를 준다. 따라서 점수가 특정 조건을 만족하는지 하지 않는지에 따라서 해당 성적의 부여 여부가 달라지게 된다. 이런 과정을 수행하는 구문을 조건문이라고 하며, 파이썬에서는 if와 elif, else로.. [Python] 3. 입출력 (Input / Output) [목차] 1. input 함수로 입력받기 2. 여러 값 한 번에 입력받기 (split, map) 3. 다양한 경우의 입력받기 4. print 함수로 출력하기 1. input 함수로 입력받기 파이썬은 기본적으로 input()함수를 이용해서 사용자의 입력을 받는다. input은 입력되는 모든 것을 문자열로 취급한다. 변수에 값을 입력받을 때에는 a = input() 와 같은 형태로 이용한다. a = input() # 1234ab 입력 print(a) # ans : "1234ab" a = input() # 123 입력 print(a) # ans : "123" a = input() # 1 2 3 입력 print(a) # ans : "1 2 3" 사용자 입력을 받을 때 메시지를 띄워줄 수도 있다. 예를 들어서 번.. Google Kickstart Round A 2021 풀이 Rank = 861 (KR 37) 1. K-Goodness String (12 pts) 길이가 N인 문자열 S가 주어지고, 각 글자를 원하는 만큼 변경할 수 있다. 1≤i≤N/2 인 i에 대해서 S[i] != S[N-i+1]인 i의 개수가 K가 되기 위한 최소 변경 횟수를 구하는 문제이다. 단순 구현 문제이다. S[i]나 S[N-i+1] 둘 중 하나를 바꾼다면 상태를 바꿀 수 있으니 처음 문자열에서 S[i] != S[N-i+1]인 i의 개수를 구한 다음 K와의 차이만큼 문자를 바꿔주면 된다. (멍청하게도 S[i] == S[N-i+1]이면 점수를 얻는다고 생각해서 1WA를 받았다. 왜 하필 예제 답이 같아서...) [소스 코드] #include using namespace std; int main(void.. [Codeforces] Round #709 (div. 2) A ~ D 풀이 2021.03.21 22:20 ~ 00:35 본 라운드 참여 (performance = 1844) 테크노컵은 뭔가 항상 어려운 느낌이다... 생각보다 퍼포먼스가 나쁘지 않게는 나왔는데, 개인적으로 요즘 코포 폼이 조금 올라왔다고 생각해서 더 아쉬운 기분이 든다. A. Prison Break (*800) 모든 칸들에서 밖으로 나갈 수 있기 위해서 제거해야 하는 벽의 수의 최소를 구하는 문제이다. 답은 가로 * 세로, 즉 칸의 개수이고 대회중에는 직관적으로 빠르게 해결했다. 정확한지는 모르겠으나 증명을 하자면, 각 칸마다 해당 칸에서 시작해서 밖으로 나갈 수 있는지 없는지를 상태로 표현하고, 벽이 제거된 이웃한 칸은 하나의 칸으로 합쳐진다고 생각하자. 벽을 하나 제거했을 때 밖으로 나갈 수 없었던 2개 이상.. [Python] 2. 파이썬의 기본 자료형(4) - 딕셔너리(Dictionary) & 집합(Set) [목차] 1. 딕셔너리(Dictionary) 만들기 2. 딕셔너리 사용하기 3. 집합(Set) 만들기 4. 집합 사용하기 1. 딕셔너리(Dictionary) 만들기 먼저 딕셔너리(Dictionary)란 각각의 키(key) 값마다 하나의 값이 대응된 쌍들을 모아놓은 자료형이다. 의미 그대로 사전에서 어떤 단어의 뜻을 찾기 위해서 해당 단어만 찾으면 되듯이 특정 값을 찾기 위해서는 대응된 key값으로 바로 찾을 수 있다는 장점이 있다. 리스트는 대괄호, 튜플은 소괄호를 이용했다면 딕셔너리는 중괄호 '{ }' 를 이용해서 생성한다. 다음은 기본적인 딕셔너리의 형태이다. {key1: value1, key2: value2, key3: value3 ...} 이처럼 key값과 value값을 콜론(:)으로 묶어서 저장.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 23 다음