본문 바로가기

전체 글48

BOJ 15990 1, 2, 3 더하기 5 www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 코드 from sys import stdin input = stdin.readline MOD = 1000000009 T = int(input()) dp = [[0, 0, 0] for _ in range(100001)] dp[1] = [1, 0, 0] dp[2] = [0, 1, 0] dp[3] = [1, 1, 1] dp[4] = [2, 0, 1] for i in range(5, len(dp)): dp[i][0] = (dp[i-1][1] + dp[i-1][2]) %.. 2020. 10. 31.
[TIL] 시간 복잡도와 알고리즘 문제 풀기 시간 복잡도니 공간 복잡도니 하는 이야기는 전공 공부할 때나 자격증 준비할 때나 아주 기초로 넘어가곤 했지만, 정작 알고리즘 문제를 풀 때는 어떻게 적용을 시키는게 좋을지 감이 잡히지 않았다. 그에 관한 내용에 대해 서술한다. 시간 복잡도란? 어떠한 알고리즘에서 걸리는 시간을 의미한다. 정확하게 시간으로 측정할 수 없기 때문에, 코드 한 줄 한 줄이 얼마나 수행되느냐를 세어 계산하곤 한다. 이 때 (입력의 크기 등에 의해서) 최악의 시간이 든다고 계산하여 빅오표기법으로 나타낸다. 예를 들어 보자. # 1 2020. 10. 28.
BOJ 2133 타일 채우기 www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 2xN 타일링 문제랑 똑같을 줄 알고 만만히 봤다가 죽을상 짓게 만든 문제다. 답안 코드 [Python3 코드] from sys import stdin input = stdin.readline def solution(N): # dp[n] : 3*n 인 타일을 채우는 경우의 수 # dp[n] = dp[n-2]*dp[2] + dp[n-4]*2 + dp[n-6]*2 + ... ## 2 곱하는 이유 : 예외 케이스 dp = [0 for _ in range(31)] dp[0] = 1 dp[2] = 3 for i in range(4.. 2020. 10. 28.
나는 어떠한 개발자가 되고자 하는가 '밀당영어' 에서 ai 맡고 계시는 소마 3기 선배님과 기회가 닿아 많은 이야기를 나누었다. 사실 요새 '영어' '개인 맞춤' '학생 관리' '인터넷 강의' 라는 키워드의 서비스가 굉장히 많기 때문에, 그에 대해 별다른 생각을 않고 있었다. 하지만 선배님이 말씀하신 이야기는 굉장히 새롭고 인상깊었다. 1. 서비스와 가치에 대해서 왜 아이들이 영어를 못할까? 이유는 단순하다. 영어 공부가 재미가 없기 때문이다. 여기서 단순히 "그럼 공부를 재밌게 해주자!" 하면 칭찬 스티커를 준다던가, 성적이 좋으면 원하는 물건을 사준다거나 하는 흔해빠진 이야기가 될 것이다. 하지만 밀당영어는 달랐다. 사람은 누구나 '인정욕' 을 가지고 있다. 게임이 재미있는 이유도 내가 게임을 하면서 어떠한 일을 성취하고, 인정을 받는.. 2020. 10. 22.
[TIL] Hibernate PK 생성 전략 JPA 에서의 PK 생성 방법 PK의 선정 방식에는 자연키(Natural Key), 대체키 (Surrogate Key) 두 가지 방식이 있다. 자연키 (Natural Key) 대체키 (Surrogate Key) 의미가 있는 컬럼을 PK로 사용함 의미가 없는, PK로 사용하기 위한 컬럼을 따로 생성함 연락처, 주민등록번호 등 Auto Increament, Sequence 등 JPA에서는 @Id와 함께 @GeneratedValue(sterategy) 어노테이션을 통해 대체키 방식을 제공하고 있다. 생성 전략 설명 GenerationType.AUTO JPA 구현체 (ex: Hibernate) 가 결정한다. GenerationType.IDENTIFY 데이터베이스에 위임한다. (ex: MySQL : auto-in.. 2020. 10. 15.
[TIL] SOMA CAMP 1일차 - 최백준 알고리즘 최신 알고리즘 트렌드 및 유형별 알고리즘 문제 공략법에 대한 강연을 들었다. (컨디션 문제로 많이 지각해서 놓친 부분이 많다.) 최신 알고리즘 트렌드 요즘 코딩 테스트는 파싱, 시뮬레이션, 브루트포스, BFS, DP 위주로 출제되는 경향이라고 한다. 알고리즘 문제를 풀다가 막히면, 혼자서 끝까지 해결하려고 하지 말고, 답을 보고 빠르게 이해하여 시간을 절약하는 편이 좋다고 한다. 답을 외우거나 기출 문제를 잔뜩 푸는 것은 별 의미가 없다. 그보다는 비슷한 알고리즘을 쓰는 문제들을 많이 풀어보고, 어떻게 문제를 풀어내는지 과정을 이해하라. 예를 들어, 이 문제는 DP로 푸는 문제다, 라고 하면 왜 DP 문제인지를 알아야 한다. 이 알고리즘으로 풀리는 문제들의 특징을 잘 알면 쉽다. 알고리즘 문제 공략법 (.. 2020. 10. 14.