개발노트(150)
-
BAEKJOON #9461 파도반 수열
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/9461 풀이 dp list생성, 규칙에 따라 리스트의 1, 2, 3번째 값 1을 미리 삽입 규칙에 따라 dp list에 삽입 dp[i] = dp[i-2]+dp[i-3] # 파도반 수열 # https://www.acmicpc.net/problem/9461 T = int(input()) # dp list생성 dp = [0] * 101 dp[1] = 1 dp[2] = 1 dp[3] = 1 for _ in range(T): N = int(input()) for i in range(4, N+1): dp[i] = dp[i-2] + dp[i-3] print(dp[N])
2021.04.29 -
BAEKJOON #1904 01타일
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/1904 타일의 개수가 늘어나는 규칙을 찾아야 문제를 해결 할 수 있다. 규칙을 찾아보면 n = 1, tile = 1 n = 2, tile = 2 n = 3, tile = 3 n = 4, tile = 5 n = 5, tile = 8 n번째 타일의 수는 (n - 1) + (n - 2) 의 타일 수와 같다는 것을 알 수 있다. 풀이 dp list생성 for문 돌며 계산한 값을 dp list에 저장 # 01타일 # https://www.acmicpc.net/problem/1904 """ 규칙을 찾아보면 n = 1, tile = 1 n = 2, tile = 2 n = 3, tile = 3 n = 4, til..
2021.04.29 -
BAEKJOON #9184 신나는 함수 실행
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/9184 풀이 dp리스트를 미리 생성한다. 값은 0으로 하고 문제에서 20이상의 값은 모두 20으로 재귀하기 때문에 21크기 리스트를 만든다. 문제의 식을 그대로 쓴다. 재귀하기 전 이미 dp리스트에 값이 있으면 그대로 return하는 코드를 추가한다. # 신나는 함수 실행 # https://www.acmicpc.net/problem/9184 def w(a, b, c): if a 20: return w(20, 20, 20) # 아래 조건을 실행하기 전에 # dp리스트에 이미 존재하면 그대로 리턴한다. if dp[a][b][c]: return dp[a][b][c] # dp리스트에 없으면 조건을 실행 i..
2021.04.28 -
BAEKJOON #18870 좌표 압축
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/18870 풀이 주어진 숫자 리스트의 중복을 set을 이용해 제거, sorted로 정렬한다. for문으로 정렬된 리스트를 돌며 숫자를 key, 순위를 value로 딕셔너리에 추가 처음 주어진 숫자 리스트 순서대로 순위를 출력 # 좌표 압축 # https://www.acmicpc.net/problem/18870 N = int(input()) num_list = list(map(int, input().split(" "))) num_dict = {} for i, n in enumerate(sorted(set(num_list))): num_dict[n] = i for n in num_list: print(f..
2021.04.26 -
BAEKJOON #1018 체스판 다시 칠하기
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/1018 풀이 주어지는 판에서 8 * 8 만큼씩 자른 후 W가 시작점 일 때와 B가 시작점 일 때 바꿔야 하는 칸의 개수를 구하고 그중 최솟값을 구한다. x, y 축의 값을 더한 값이 홀수일 때와 짝수일 때 항상 같은 색으로 칠해지므로 다른 색으로 칠해진 부분의 값을 카운트한다. # 체스판 다시 칠하기 # https://www.acmicpc.net/problem/1018 N ,M = list(map(int, input().split(" "))) bord = [] for _ in range(N): bord.append(input()) change_num_list = [] # N - 7 만큼 for문으로..
2021.04.26 -
고랭고랭 - 4. if, switch
go언어에서는 if문에 변수를 선언 할 수 있다. package main import "fmt" func canIDrink(age int) bool { if koreanAge := age + 2; koreanAge < 18 { return false } return true } func main() { fmt.Println(canIDrink(16)) } // output // true switch도 마찬가지로 변수를 선언 할 수 있다. package main import "fmt" func canIDrink(age int) bool { switch koreanAge := age + 2; koreanAge { case 10: return false case 18: return true } return fa..
2021.01.07