본문 바로가기

알고리즘20

[알고리즘] 백준 2839번: 설탕 배달 풀이 (자바/Java) DP,동적계획법, Dynamic Programming 기본 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그�� www.acmicpc.net 설탕 배달 1 초 128 MB 130830 39344 31733 31.834% 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로.. 2020. 9. 26.
[Java] 자바 코드,메소드 실행 시간 측정하기 : System.currentTimeMillis() - 개발하는 지토 알고리즘 문제풀이를 진행하거나, 실제 서비스를 구현할 때 어느 구간의 코드나 메서드의 실행시간을 측정하고 싶을 때가 종종 있다. 그럴 때 템플릿처럼 쓸 수 있는 코드이다. System.currentTimeMillis() 함수를 사용하여 시간을 받아오고 내가 측정하고자 하는 코드를 중간에 삽입, 그리고 두 시간 차이를 계산함으로써 ms단위의 시간을 구할 수 있다. 초(s)로 변환하여 보기위하여 나누기 1000을 해줬다. double beforeTime = System.currentTimeMillis(); // 런타임을 측정할 코드------------------------------------ System.out.println(Arrays.toString(solution(12345))); // 코드 END.. 2020. 9. 23.
2021 카카오 블라인드 채용 KAKAO BLIND RECRUITMENT 카카오 코딩테스트 후기 올해 처음으로 카카오 블라인드 채용 코딩 테스트를 신청했다. 사실 제대로 알고리즘 문제풀이를 준비한 건 두 달 남짓 된 것 같다. 물론 회사일과 병행으로 준비했어야 했기에 평일엔 길어야 두세 시간 정도였던 것 같다. 오늘 두 시에 카카오 블라인드 채용 코딩 테스트가 시작이 되었는데 대기하고 있다가 바로 접속하여 시험을 치렀다. 첫 번째 문제는 알고리즘이라고 할 것도 없이 문제에 모든 구현이 주어져있었고 해당 글 대로 구현만 하면 되는 문제였다. 문자열을 다루는 방법이나 정규표현식 정도를 알아두면 충분히 풀 수 있었던 문제였다. 두 번째 문제는 문제 자체가 쉽게 이해가 가질 않아서 3번, 4번 문제를 먼저 풀었다. 3번 문제는 쉽게 풀이를 작성하였는데 효율성에서 통과하지 못했고 효율성을 통과하기 위해 고민.. 2020. 9. 13.
[알고리즘] 프로그래머스 무지의 먹방 라이브(Level 4/2019 카카오 블라인드 채용 문제) [자바/JAVA] 풀이- 개발하는 지토 무지의 먹방 라이브 * 효율성 테스트에 부분 점수가 있는 문제입니다. 평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다. 각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음.. 2020. 9. 7.
[알고리즘] 프로그래머스 모의고사(Level 1) [자바/JAVA] 풀이- 개발하는 지토 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작.. 2020. 9. 3.
[알고리즘] 프로그래머스 큰 수 만들기(Level 2) [자바/JAVA] 풀이- 개발하는 지토 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return 1924 2 94 1231.. 2020. 9. 2.