전체 글

전체 글

    [programmers] 가장 먼 노드

    [프로그래머스] 가장 먼 노드 문제 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 풀이과정 인접 리스트에 값을 대입해준다. visit 배열을 이용해 방문하지 않은 경우에 거리를 대입해준다. 대입해준 이후에는 cnt 를 1 증가시킨다. q에는 현재 노드의 인접 에지들의 [노드 번호, 지나온 거리] 값을 삽입한다..

    [백준] 10844. 쉬운 계단 수 python

    [백준] 10844번 쉬운 계단 수 문제 45656이란 수를 보자. 이 수는 인접한 모든 자리수의 차이가 1이 난다. 이런 수를 계단 수라고 한다. 세준이는 수의 길이가 N인 계단 수가 몇 개 있는지 궁금해졌다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구하는 프로그램을 작성하시오. (0으로 시작하는 수는 없다.) 풀이과정 0 1 2 3 4 5 6 7 8 9 1자리 0 1 1 1 1 1 1 1 1 1 2자리 1 1 2 2 2 2 2 2 2 1 3자리 1 3 3 4 4 4 4 4 3 2n자리수로 만들 수 있는 계단 수들은 위와 같다. 2자리수일 때, 0을 끝자리로 만들 수 있는 수는 10 한가지이다. 1을 끝자리로 만들 수 있는 수는 21 한가지, 2를 끝자리로 만들 수 있는 수는 12 ..

    [백준] 11057. 오르막 수 python

    [백준] 11057번 오르막 수 문제 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. 풀이과정 0 1 2 3 4 5 6 7 8 9 SUM 1자리수 1 1 1 1 1 1 1 1 1 1 [10] 2자리수 1 2 3 4 5 6 7 8 9 10 [55] 3자리수 1 3 6 10 15 21 28 36 45 55 [220]규칙: dp[i][j] = dp[i][j-1] + dp[i-1][j] 1로 끝나는 3자리 수를 만든다고 가정하면,..

    [백준] 14888. 연산자 끼워넣기 python

    [백준] 14888번 연산자 끼워넣기 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다. 1+2+3-4×5÷6 1÷2+3+4-5×6 1+2÷3×4-5+6 1÷2×..

    [programmers] 방문 길이 python

    [프로그래머스] 방문 길이 문제 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, ULURRDLLU로 명령했다면 1번 명령어부터 7번 명령어까지 다음과 같이 움직입니다. 8번 명령어부터 9번 명령어까지 다음과 같이 움직입니다. 이때, 우리는 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하려고 합니다. 예를 들어 위의 예시에서 게임 캐릭터가 움직인..

    [programmers] 다리를 지나는 트럭 python

    [프로그래머스] 다리를 지나는 트럭 문제 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5..

    [SWEA] 3752. 가능한 시험 점수 python

    문제 3752. 가능한 시험 점수 풀이과정 0점부터 시작하여 해당 문제를 해결했을 때 얻을 수 있는 점수를 더해가며 result_score에 추가한다. result_score에는 중복이 허용되지 않으므로 checker를 두어 이미 추가한 점수는 추가하지 않도록 한다. checker를 두지 않아도, result_score를 SET으로 선언한 뒤 각 점수를 추가해주어도 시간초과가 발생하지 않고 통과한다! 소스코드 T = int(input()) # 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다. for test_case in range(1, T + 1): # print('#{}'.format(test_case), end=' ') t = int(input()) # test ..

    All About Java Optional

    예상치 못한 Null Pointer Exception에 대응하기 위해, 우리는 가끔 이런 코드를 짜곤 합니다. if (a != null && a.getA() != null) { // TO DO }이렇듯 null은 코드를 길어지게 하지만 꼭 막아야하는 불편함을 제공하죠. 여기서, 우리는 자바 8에서 도입된 Optional 을 사용할 수 있습니다. Optional 객체 생성하기 먼저, 반드시 값이 있어야하는 객체의 경우에는 다음과 같이 생성할 수 있습니다. Optional optional = Optional.of("hi");값이 null일 수도 있는 경우에는 다음과 같이 객체를 생성할 수 있습니다. Optional optioanl = Optioanl.ofNullable(null);그렇다면, 비어있는 Opti..

    [머신러닝 기초] 퍼셉트론부터 CNN 구조까지

    About Perceptron 퍼셉트론이란? 다수의 신호를 입력으로 받아 하나의 결과를 내보내는 알고리즘이다. 퍼셉트론 신호는 1 또는 0의 두가지 값을 가질 수 있다. 즉, 어떠한 임계값을 기준으로 하여 신호를 활성화하거나, 비활성화할 수 있다. 다수의 입력을 받는 퍼셉트론의 그림을 보자면 다음 그림과 같다. 여기서 x는 입력값을 의미하며, W는 가중치, y는 출력값이다. 그림 안의 원은 인공 뉴런에 해당한다고 볼 수 있다. 각각의 인공 뉴런에서 보내진 입력값 x는 각각의 가중치 W와 함께 종착지인 인공 뉴런에 전달된다. 각 입력값에는 가중치가 존재하는데, 이때 가중치의 값이 크면 클수록 해당 입력 값이 중요하다는 것을 의미한다. 입력값과 가중치가 곱해져 인공 뉴런에 보내지면 그 값이 임계치를 넘는 경..

    @Scheduled 와 함께 Cron식 사용하기

    @Scheduled 어노테이션 @Component @Slf4j public class Scheduler { @Scheduled(////) public void fixedRateTest() { log.info(">>>>> Schedule"); } @Scheduled 어노테이션과 함께 사용할 수 있는 인자들은 다음과 같다. fixedRate = 2000 // 수행 시작 기점, 2초 후 실행 fixedDelay = 2000 // 수행 종료 기점, 7초 후 실행 cron = "0 0 10 * * *" // 매일 오전 10시 실행 여기서, Cron 표현식에 대해 더 알아보자면, Cron 표현식 @Scheduled(cron = "0 0 10 * * *") // 매일 10시 실행 @Scheduled(cron = "0..