목록분류 전체보기 (68)
이것저것 공부기록

1. 최대점수 구하기(DFS) 결국 1번째 문제를 풀거냐 말거냐, 2번째 문제를 풀거냐 말거냐, ... 의 문제. def DFS(L, score, time): global maxScore if time > m: return if L == n: if score > maxScore: maxScore = score else: DFS(L+1, score+a[L][0], time+a[L][1]) # 다음 행으로 넘어갈 때 back하는 효과 / L번째 문제 품 DFS(L+1, score, time) # L번째 문제 풀지 않음 if __name__ == "__main__": n, m = map(int, input().split()) a = [] for _ in range(n): s, t = map(int, input..

0. 재귀함수와 스택 재귀함수: 자기 자신을 호출하는 함수, 재귀함수는 스택으로 구현된다. 반복문을 대체할 수 있는 것이 재귀함수. 사용자에게 n이라는 수를 입력받으면, 1부터 n까지 출력해주는 프로그램을 만들어보자. def DFS(x): if x > 0: # x에 0이 들어오면 종료 print(x, end = ' ') DFS(x-1) if __name__ == "__main__": n = int(input()) DFS(n) DFS(x) 함수는 재귀함수이고, 위 코드를 실행한 결과는 다음과 같다. 그러나 우리는 1부터 출력하기로 했으므로 코드를 다음과 같이 수정한다. def DFS(x): if x > 0: # x에 0이 들어오면 종료 DFS(x-1) print(x, end = ' ') if __name_..
스택 · LIFO: Last In First Out, 나중에 들어간 게 먼저 나온다. · 들어가는 입구와 나오는 출구가 같다. · 파이썬은 리스트로 스택을 구현할 수 있다. 리스트 그 자체가 스택의 속성을 띰. 1. 가장 큰 수(스택) 입력예제 1번 5276823을 가지고 문제를 이해해보자면, 각 숫자들은 자신 앞에 자신보다 더 작은 숫자가 있으면 그 숫자를 없애고(지우고) 앞으로 가야한다. 1) 5 5 2) 2 - 앞의 숫자가 자기보다 큼 → 지우지 않음 5 2 3) 7 - 앞의 숫자들이 자기보다 작음 → 지우고 앞으로 전진 5 2 7 즉, 4) 6 7 6 5) 8 - 7은 지울 수 없기 때문에(지우는 횟수 끝) 6까지만 지울 수 있음 7 6 8 6) 더이상 지울 수 없기 때문에 답은 7 8 2 3 입..

쉽게 배우는 자바1 강의를 완강했다. 🎉🎉🎉 나의 소식에서 축하도 해준다...ㅋㅋ 수료증도..! ㅎㅎ 이런 거 받으면 괜히 기분이 더 좋은 법😊 완주를 한 기념으로, 실제로 강의를 수강하며 공부해본 사람으로서 강의를 들으며 느낀 부스트코스의 장점에 대해 짧게나마 이야기해보려 한다. (단점이라고 느낀 것이나 불편한 점은 딱히 없었다.) 👍 부스트코스의 장점 1. 무료 강의이다. 물론 프로젝트형 강의 중 코드 리뷰는 비용이 들긴 하지만, 이 비용 또한 기본적으로 코드 리뷰에 시간을 할애한 리뷰어에게 활동비로 지급되고, 그 외에 현업 전문성을 갖춘 리뷰어를 선발하고 우수 리뷰어의 활동을 지원하는 데에도 사용된다고 하니 강의 수강자 입장에서는 비용을 들인 만큼 좋은 서비스로 돌려받는 것이라는 생각이 든다. 요즘..

*부스트코스 강의를 통해 학습한 내용을 바탕으로 작성한 글입니다. 7. 메소드(Method) 보통 다른 언어에는 함수(Function)라는 것이 존재하는데, 함수는 '어떤 입력값을 주면 어떤 출력값(리턴값)을 돌려주는 것'으로, 들어온 입력값을 가지고 어떤 처리를 하여 리턴값을 돌려주는 블랙박스와 같다. 그러나 자바는 클래스가 기본이므로, 클래스를 떠나 존재하는 것은 있을 수 없기 때문에 클래스 내에 존재하는 함수를 메소드라고 부른다. 이전에 사용했었던 Math 클래스의 floor, ceil, PrintWriter 클래스의 write, close 등이 메소드이다. * 함수와 메소드의 가장 큰 차이는 함수는 독립적으로 존재하며, 메소드는 클래스에 종속되어 존재한다는 점이다. 즉 메소드는 클래스의 동작을 나..

*부스트코스 강의를 통해 학습한 내용+개인적으로 공부한 내용을 바탕으로 작성한 글입니다. 이전 글에서 만든 프로그램에 여러 가지 기능을 추가해보면서 제어문과 배열에 대해서 알아보고 메소드, 클래스, 인스턴스를 어떻게 활용할 수 있는지 보도록 하자. 4. 조건문 제어문은 프로그램의 실행 과정을 조건에 따라 바꾸는 것인데, 자바의 제어문에는 조건문과 반복문 두 가지가 있다. 그리고 조건문에는 if문과 switch/case문이 있는데, 이번에는 if문을 사용해보자. 문제 상황에 다음과 같은 조건이 새로 추가되었다고 하자. 수익(income)이 1만원을 넘을 경우에만 동업자들에게 기존의 배당률대로 수익을 배당한다. 수익이 1만원 이하일 때는 1번 동업자에게만 모든 수익을 배당한다. if문의 기본 구조는 다음과 ..

*부스트코스 강의를 통해 학습한 내용+개인적으로 공부한 내용을 바탕으로 작성한 글입니다. 자바에 대한 기본적인 것들을 익혔으니, 강의를 따라가며 자바를 이용해 문제를 해결해볼 것이다. 모든 것을 다 배우는 것은 어렵고 힘들기도 하지만 효율성 또한 떨어진다. 문제를 발견했다면, 주저하지 말고 시작하고 난 뒤 부족한 부분, 필요한 부분을 계속해서 공부해나가며 적용시키면 된다. 최소한으로 공부하고 최대한으로 일하는 것을 반복하면서 공부와 일의 경계는 점점 사라져서 일하면서 공부하고 공부하면서 일하는 중급자가 되어 있을 것입니다. 라는 강사님 말을 믿고 강의를 차근차근 따라가보도록 하겠다. 문제 현상 1. 기본 기능 구현 프로젝트와 클래스를 생성하고, 가장 기본적인 기능(연산과 출력)만으로 문제를 해결했다. (..

*부스트코스 강의를 통해 학습한 내용+개인적으로 공부한 내용을 바탕으로 작성한 글입니다. UI UI(User Interface, 사용자 인터페이스)는 사람들이 컴퓨터와 상호 작용할 수 있도록 만들어진 매개체이다. 따라서 UI는 사용자와 사용자가 다룰 대상(하드웨어, 소프트웨어 요소)을 연결해주는 것이라고 할 수 있다. 예를 들면 스마트폰의 키보드, 음성인식 기능, 웹사이트의 로그인 버튼 등이 있다. API UI가 사용자와 프로그램을 연결하는 것이라면, API(Application Programming Interface)는 프로그램과 또 다른 프로그램을 연결하는 것이라고 볼 수 있다. 위 그림을 보면, 컴퓨터 운영체제 위에 자바가 설치되어 있고, 설치된 자바의 라이브러리에는 보이는 것과 같이 System,..