전체 글

전체 글

    [백준, BOJ 11055] 가장 큰 증가 부분 수열 (java)

    출처-https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수� www.acmicpc.net 내가 푼 방식 : '11053'번과 동일한 방식으로 품. dp 배열에 순서를 저장해주지 않고 합을 저장해줌. import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Sca..

    [백준, BOJ 11053] 가장 긴 증가하는 부분 수열 (java)

    출처-https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextIn..

    [백준, BOJ 2193] 이친수 (java)

    출처-https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 내가 푼 방식 : dp[i][0]는 dp[i-1][0], dp[i-1][1] 두 경우일 때 다 올 수 있다. dp[i][1]는 dp[i-1][0]일 때만 올 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stu..

    [백준, BOJ 11057] 오르막 수 (java)

    출처-https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수� www.acmicpc.net 내가 푼 방식 : dp[i][j]는 dp[i-1][j]부터 dp[i-1][10]까지 올 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scann..

    [백준, BOJ 10844] 쉬운 계단 수 (java)

    출처-https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 내가 푼 방식 : dp[i][0]는 dp[i-1][1]일 경우에만 올 수 있다. dp[i][j=1]~dp[i][j=8]은 각각 dp[i-1][j-1]와 dp[i-1][j+1]인 경우에 올 수 있다. dp[i][9]는 dp[i-1][8]일 경우에만 올 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new ..

    [백준, BOJ 9095] 1, 2, 3 더하기 (java)

    출처-https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 www.acmicpc.net 내가 푼 방식 : dp[i]는 dp[i-1]에서 1을 더한 경우, dp[i-2]에서 2를 더한 경우, dp[1-3]에서 3을 더한 경우와 동일하며 서로 겹치는 경우는 없으므로 dp[i]=dp[i-1]+dp[i-2]+dp[i-3] 이다. import java.util.Scanner; public class Main { pu..

    [백준, BOJ 11727] 2xn 타일링 2 (java)

    출처-https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 내가 푼 방식 : '11726' 번과 동일한 방식으로 풀었다. 다만 (1x2 타일이 위아래로 붙어있는 모양, 2x2 타일 하나) 이 두 가지가 결과적으론 2x2 모양의 타일로 보이므로 '11726' 번에서 dp[i]=dp[i-1]+dp[i-2]*2 로 구현해주었다. import java.util.Scanner; public class Main { public static void main(String[] args) { /..

    [백준, BOJ 11726] 2xn 타일링 (java)

    출처-https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 내가 푼 방식 : dp[i]는 dp[i-1]에서 2x1 타일 하나를 덧붙인 모양과 같다. 또한 dp[i-2]에서 1x2 타일을 덧붙인 모양과 같다. 두 경우는 겹치는 경우가 없으므로 dp[i]=dp[i-1]+dp[i-2]이다. import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-gener..

    [백준, BOJ 1463] 1로 만들기 (java)

    출처-https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 내가 푼 방식 :1에서 n에 접근하기 위한 최단거리를 구해준다. dp[1]~dp[n]인 배열을 생성한다. i가 1부터 시작해서 n까지 i (+1 or *2 or *3) 해서 최단 루트로 n에 도달할 수 있는 경우의 수를 찾는다. DP 관련 문제 중 첫번째로 풀었던 문제. 이 문제를 풀 때까지만 해도 DP 개념이 이해가 잘 안 됐었다. 그래서 보기 편하게 표로 과정을 나타내 봤다. 이렇게 한번 그려보고 나니까 머릿속이 정리가 됐다. 다음 DP 풀 때부터는 이걸 바탕으로 머리로 그려보며 풀어서 좀 더 수월했다..

    미래연구소 딥러닝 3주 차 ( Numpy 특강 2)

    미래연구소 http://futurelab.creatorlink.net/ 미래연구소 AI, 인공지능 Deep Learning beginner 미래연구소 딥러닝 입문 스터디 / 모집인원 : 25명 (선착순 마감) 수강료 : 월 15만원 / (Coursera 강의 수강료 월 5만원 개인결제) futurelab.creatorlink.net import numpy as np 1) numpy.zeros 원하는 shape에 맞는 영행렬 생성 1d array이면 int 자료형→ np.zeros(3) 2d array이면 tuple 자료형 → np.zeros((3,2)) np.zeros(10) --출력-- array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) np.zeros((3,2)) -..