![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXbtPs%2Fbtrbe5JFs7W%2FfN9sxC1kvVKqE1AcAfAPNk%2Fimg.png)
백준 알고리즘 파이썬(Python) 2747번 피보나치 수
2021. 8. 3. 13:08
Algorithm
만약 이를 재귀 함수로만 문제를 풀게 된다면 아래 그림과 같이 재귀 함수가 n을 인자로 호출되면 그 함수는 n-1과 n-2를 인자로 함수를 호출하고, 호출된 각 함수가 계속해서 함수를 두 개씩 호출하게 되므로 만약 n이 100이라면 이 구조의 기반한 문제풀이라면 컴퓨터가 1초에 1억 번의 계산을 수행한다 해도 수백억 년이 걸린다. 이러한 문제를 다이나믹 프로그래밍(DP)을 이용하여 간단하게 해결할 수 있다. 다이나믹 프로그래밍이란 간단히 말해서 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법이다. n = int(input()) d = [0] * (n+1) #단순히 재귀적으로 풀 때 과도한 시간이 걸리는 것을 방지하기 위해 dp로 풀어준다. if n == 1..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmnKB4%2FbtraPtywOTt%2FfveXKTyf1KVdJKdZicSdz0%2Fimg.png)
Set Collection에 대한 학습 테스트
2021. 7. 30. 16:49
JAVA with TDD, Clean Code
이 글은 자바지기(박재성)님의 강의를 개인적인 공부를 위해 정리한 글입니다. 우아한테크세미나_TDD 리팩터링 📖 1단계 - 단위 테스트 연습 내가 사용하는 API 사용법을 익히기 위한 학습 테스트에서 시작 String 클래스에 대한 학습 테스트 Set Collection에 대한 학습 테스트 구현하는 메소드(함수) 중 Input과 Output이 명확한 클래스 메소드(보통 Util 성격의 메소드) 에 대한 단위 테스트 연습 Set Collection에 대한 학습 테스트 다음과 같은 Set 데이터가 주어졌을 때 요구사항을 만족해야 한다. 여기서 쓰인 @BeforeEach 어노테이션은 @BeforeEach는 각 테스트 함수가 불리기 전에 매번 호출 됨(JUnit4에서 @Before) 추가로 @BeforeAll은..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyD04O%2FbtraQrtqC6S%2FS5rkn33hYby1k3g3DmruYk%2Fimg.png)
백준 알고리즘 파이썬(Python) 2579번 계단오르기
2021. 7. 30. 13:18
Algorithm
우선 문제의 세 가지 규칙 중 마지막 규칙을 주의 깊게 봐야 한다. 마지막 도착 계단은 반드시 밟혀있어야 하므로 가장 마지막 계단에서부터 시작하는 것이 좋다. 맨 마지막 계단이 밟혀있다고 가정해보자. 그렇다면 그 전의 계단은 "마지막 - 1" 계단이거나, "마지막 - 2" 계단 일 것이다. 두 개의 경우에 문제 2번 조건을 적용시켜보자 1) 그전에 밟은 계단이 "마지막 - 1" 일 경우 반드시 "마지막 - 2" 계단을 밟으면 안 된다. - 연속된 3개의 계단을 밟아서는 안되므로 2) 그 전에 밟은 계단이 "마지막 - 2"일 경우 그 전 계단은 신경 쓰지 않는다. - 다이내믹프로그래밍을 적용시키면 되므로 내가 만약 다이나믹 프로그래밍을 통해 배열 "dp"에 앞에서부터 밟아온 계단 중 가장 최대의 값을 저장..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxiog2%2FbtraJAdIZAY%2FSQQA1jOlgMSwIRM9OFHeLK%2Fimg.png)
String 클래스에 대한 학습 테스트
2021. 7. 29. 16:53
JAVA with TDD, Clean Code
이 글은 자바지기(박재성)님의 강의를 개인적인 공부를 위해 정리한 글입니다. 우아한테크세미나_TDD 리팩토링 📖 1단계 - 단위 테스트 연습 내가 사용하는 API 사용법을 익히기 위한 학습 테스트에서 시작 String 클래스에 대한 학습 테스트 Set Collection에 대한 학습 테스트 구현하는 메소드(함수) 중 Input과 Output이 명확한 클래스 메소드(보통 Util 성격의 메소드) 에 대한 단위 테스트 연습 우선 단위 테스트 연습을 하기 위해서는 Test 폴더를 만들어야 한다. 이 글에서는 Test 폴더를 만드는 것이 주 내용이 아니므로 인텔리제이로 테스트 폴더를 만드는 것이 잘 설명된 글을 첨부한다. ※ 인텔리제이로 테스트 폴더 만들기 IntelliJ IDEA에 JUnit 추가하기 / 테스..