목록전체 글 (221)
우당탕탕 개발일지
맨날 input(), input().split()만 쓰다가, 뭔가 더 간편하고 속도도 빠른 방법은 없을지 찾아보았다. [상황 1] 한 줄에 여러 값을 int타입으로 받고, 이를 리스트로 저장하는 상황 사용할 함수: input(), split(), map(), list() n = list(map(int, input().split())) n # [3, 6, 9, 12, 15] [상황 2] 여러 줄에 걸쳐 여러 값을 int타입으로 받고, 이를 리스트로 저장하는 상황 import sys sys.stdin.read().splitlines()로 줄별로 입력값을 읽어온다. 그리고 그 값을 리스트에 넣는다. import sys data = sys.stdin.read().splitlines() [추가] input() 대..
BFS = Breath First Search 너비 우선 탐색 가장 가까이에 있는 노드부터 우선 탐색 일반적인 경우 실제 수행시간은 DFS보다 좋다. collections 모듈의 deque 라이브러리를 사용한다. 예제 코드 from collections import deque # BFS 메서드 정의 def bfs(graph, start, visited): # 큐 구현을 위해 deque 라이브러리 사용 queue = deque([start]) # 탐색한 노드를 방문처리 visited[start] = True # 큐가 빈 상태가 될 때까지 반복 while queue: v = queue.popleft() print(v, end = ' ') # 탐색한 노드와 연결되어 있지만 아직 안 읽은 노드들을 큐에 삽입 f..

DFS/BFS... 생전 처음 들어보는 내용이라 더욱더 자세하게 정독했다. 일단 DFS/BFS를 시작하기 전에 탐색, 자료구조, 오버플로, 언더플로, 스택, 큐, 재귀함수 등의 용어를 알아야 한다. 탐색 = 원하는 데이터를 찾는 과정 자료구조 = 데이터를 표현하고 관리하고 처리하기 위한 구조(스택과 큐가 자료구조의 개념) - 삽입(Push) & 삭제(Pop) 스택 vs 큐 - 스택은 선입후출, 큐는 선입선출 큐 - 큐를 구현할 때 collections 모듈에서 제공하는 deque 자료구조 활용 - from collections import deque queue = deque() queue.popleft() #왼쪽에 삭제 queue.append() #오른쪽에 삽입 queue.reverse() #리스트 자체..
문제 홍준이는 요즘 주식에 빠져있다. 그는 미래를 내다보는 눈이 뛰어나, 날 별로 주가를 예상하고 언제나 그게 맞아떨어진다. 매일 그는 아래 세 가지 중 한 행동을 한다. 주식 하나를 산다. 원하는 만큼 가지고 있는 주식을 판다. 아무것도 안한다. 홍준이는 미래를 예상하는 뛰어난 안목을 가졌지만, 어떻게 해야 자신이 최대 이익을 얻을 수 있는지 모른다. 따라서 당신에게 날 별로 주식의 가격을 알려주었을 때, 최대 이익이 얼마나 되는지 계산을 해달라고 부탁했다. 예를 들어 날 수가 3일이고 날 별로 주가가 10, 7, 6일 때, 주가가 계속 감소하므로 최대 이익은 0이 된다. 그러나 만약 날 별로 주가가 3, 5, 9일 때는 처음 두 날에 주식을 하나씩 사고, 마지막날 다 팔아 버리면 이익이 10이 된다...

스프링 강의를 듣다보니 Getter and Setter가 많이 나와서 정리해보려 한다. 1. Getter and Setter 메서드는 뭐지? - 객체 지향 프로그래밍(OOP)에서 사용되는 접근자와 설정자 메서드 - 객체의 멤버 변수에 접근하고, 값을 가져오거나 설정하는 역할을 한다. 외부에서 데이터에 바로 접근하면 무결성이 무너질 수 있으니, 메서드를 통해 데이터에 접근한다. 외부에서 접근할 수 있도록 접근 제한자는 public으로 설정한다. 2. Getter 메서드 - 멤버 변수의 값을 반환한다. - 메소드 이름: 일반적으로 get+(멤버 변수 이름) 형태이다(위에서 getId, getName이었듯이) - 리턴 타입: 필드의 리턴 타입 - 리턴값: 필드값 * 만약 필드 타입이 boolean일 경우 메서..

메소드? 처음 듣는 용어라 지레 겁먹었는데, 그냥 클래스 내의 함수이다. 입력값이 메소드를 거치면 어찌저찌 변환되어서 출력값으로 반환된다. 입력값 유무, 출력값 유무에 따라 메소드 형태가 달라진다. 1. 메소드의 구조 2. 메서드의 입력값과 리턴값 3. 메서드 호출 4. 메서드 속 변수의 효력 이 네 가지에 대해 공부한 내용을 적어보려 한다. 1. 메소드의 구조 리턴자료형 메서드명 (자료형 매개변수1, 자료형 매개변수2, ...) { ... return 리턴값; } 이런 형태이다. 리턴자료형에는 int, void 등의 자료형이 들어가는데, 여기서 void는 반환값이 없다는 의미이다. 따라서 void가 나오면 return문이 없다. 예를 들어 이 hello 메서드에서는 리턴자료형이 String이고, "he..