본문 바로가기

Java46

[프로그래머스(programmers)] 네이버 웹툰 1차 코딩테스트 합격 후기 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 네이버 웹툰 코딩테스트 21년 7월 4일, 프로그래머스에서 네이버 웹툰 1차 코딩테스트가 진행됐으며, 오늘 7월 7일에는 1차 코딩테스트의 합격자 발표가 있었다. 떨리는 마음으로 메일 확인을 해보니, 다행히도 합격이었다. 아직 알고리즘 공부를 다 하지도 못했고 채용과 관련된 시험접수가 처음인지라 별다른 기대를 하지 않았었는데, 합격이라는 소식이 놀랍기도 하고 기뻤다. 코딩테스트 해당 코딩테스틑 총 2시간 동안 3문제가 출제되었다. 문제 유형은 아래와 같다. 1. 조합 2. 최적화 문제 - 동적계획법(Dynamic Programming), 탐욕 알고리즘 (Greedy Algorithm) 3. 문자열 탐색 나는 약 40분 정도의 시간을 소요하여.. 2021. 7. 7.
[Programmers/Lv2] 숫자의 표현 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 숫자의 표현 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 문제 풀이 public static int solution(int n) { int answer = 0; for(int i = 1; i 2021. 7. 5.
[Programmers/Summer,Winter Coding 2018] 스킬트리 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 스킬트리 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 풀이 Queue를 사용하여 skill 순서를 판별한다. 한 단어 끝날 때마다 skill_q를 초기화해준다. 스킬 순서대로 푸는 것이 이 문제의 핵심이다. 제목에서 나왔듯이 트리 알고리즘이란 것을 사용하면 훨씬 더 효율적이고 쉽게 풀 수 있을 것이다. 하지만 나는 아직 트리 알고리즘을 공부해본 적 없어서 그냥 내 지식대로 풀었다. 다음에 시간 날 때 트리 알고리즘을 공부해야겠다고 다짐하게 된 계기다. skill_trees는 무조건 순서대로 해야 하므로 Que.. 2021. 7. 3.
하노이의 탑이란 무엇인가? ▏목적 ◦ 하노이의 탑 알고리즘 이해하기 ◦ 하노이의 탑 알고리즘 JAVA로 구현하기 ▏시작하는 말 오늘은 하노이의 탑 을 공부해봤다. 이름이 새로워서 내가 모르는 것인 줄 알았으나 어릴적 다들 한 번씩은 해봤던 놀이였다. 가지고 놀았던 게임을 제대로 분석하고 공부해서 코드로 구현해보니 더 재미있고 신기했다. 그럼 이제 그 하노이의 탑을 설명해보도록 하겠다. ▏하노이의 탑 하노이의 탑 규칙은 큰 원반이 아래, 작은 원반이 위로가게 해서 원반을 3개의 기둥사이에서 옮기는 것 이다. 원반은 1번에 1개씩만 옮길 수 있고, 모든 원반은 크기가 다르며 큰 원반이 작은 원반 위로 가서는 안되는 규칙이 있다. 또 최소한의 이동으로 목표 기둥으로 옮겨야 한다. ▏원리 왼쪽 기둥부터 편의상 1, 2, 3번 기둥이라고 .. 2021. 7. 2.
유클리드 호제법 이란 무엇인가? ▏목적 ◦ 유클리드 호제법 알고리즘 이해하기 ◦ 유클리드 호제법 JAVA로 구현하기 ▏시작하는 말 요즘 팀 프로젝트 작업을 하고 있어 알고리즘 공부하는 것이 뜸했다. 그래서 오늘은 일찍부터 일어나 공부를 시작해봤다. 오늘 공부한 것은 유클리드 호제법이란 알고리즘으로 최대공약수를 재귀적으로 구하는 방법이다. 예전에 내가 최대공약수 문제를 풀 때 정사각형으로 만드는 방법을 얼핏 봤었는데 그것을 오늘 제대로 공부했고 이제 설명해보려고 한다. 오늘도 역시 직접 그림판으로 그린 것이라 비율이 정확히 맞지는 않는것을 유념하고 봐줬으면 좋겠다. ▏유클리드 호제법 각 변의 길이가 22 와 8인 직사각형으로 예를 들어 설명해보겠다. 위 도형에서 짧은 변(8)을 한 변으로 하는 정사각형으로 나누면 8 x 8 정사각형 2개.. 2021. 7. 1.
[백준(baekjoon)] (Greedy 알고리즘) 설탕배달 알고리즘 문제 풀이 / 백준 (baekjoon) - 설탕배달 문제 링크 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 풀이 5kg 으로 나누어지는 최대부터 구한다. 백준 문제를 처음 풀어보았다. 클래스부터 직접 작성해야했고, 입력예제도 직접 받아야 한다는 점에서 프로그래머스보다 불편했다. 하지만 많은 문제들이 있어 풀어보려고 오늘 처음 시도해보았다. 수 많은 문제들 중 무엇부터 풀어야하나 고민하다 알고리즘 별로 풀어나가려고 해서 Greedy 부터 .. 2021. 6. 22.
[Programmers/Lv2] 주식가격 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 주식가격 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제 풀이 이번에는 예전에 풀었던 문제를 가져왔다. 내가 알고리즘을 아예 몰랐을 때 푼 문제로 간단하게 풀 수 있는 문제다. public int[] solution(int[] prices) { int[] answer = new int[pr.. 2021. 6. 21.
[프로그래머스(programmers)] (2020카카오 인턴십) 키패드 누르기 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 키패드 누르기 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 문제 풀이 키패드 위치의 좌표를 배열로 만든다. 거리가 더 가까운 손의 좌표를 갱신해준다. 2,5,8,0 번은 왼손과 오른손 중 가까운 손으로 눌러야 하므로 좌표를.. 2021. 6. 19.
검색(탐색) 알고리즘 이란 무엇인가? ▏목적 ◦ 검색 알고리즘 이해하기 ▏시작하는 말 알고리즘 공부를 하기 위하여 프로그래머스 Lv 2문제들을 꾸준히 하루에 한 문제씩 풀어나가는 중이다. 나는 알고리즘을 따로 배워본 적 없이 JAVA의 기초 지식만 있었기 때문에 1 / 3 정도 풀고 나니 남은 문제들은 구현은 해도 효율성이 좋지 않거나 손쉽게 풀 수 없는 문제들만 남았다. 때문에 나는 제대로 된 알고리즘 개념부터 공부해야겠다는 생각을 했다. 그래서 오늘부터 알고리즘 하나씩 공부한 후 이 블로그에 정리해보려고 한다. 오늘 공부한 것은 검색알고리즘으로 선형 검색과 이진 검색이다. ▏정의 선형 검색 : 무작위로 늘어놓은 데이터 집합 일 때 적절한 검색 알고리즘 이진 검색 : 일정한 규칙으로 늘어놓은 데이터 집합 일 때 적절한 검색 알고리즘 해시법.. 2021. 6. 18.
반응형