본문 바로가기

Algorithm48

[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.
MySQL에 엑셀(.csv) 데이터 넣기 내가 프로젝트를 진행하면서 엑셀에 있는 다량의 데이터를 DB에 넣어야하는 일이 생겼다. 찾아보다 명령어로 넣을 수 도 있었지만 나는 이미 mysql workbench 가 있었기에 workbench 를 활용해서 넣었다. 오늘은 그 방법을 설명하려 한다. 자신이 만든 테이블 속성 명들과 엑셀 파일 첫번째 행의 이름들을 맞춘다. 굳이 안맞춰도 되는데 편의상 맞추면 좋다. 그 후 엑셀파일을 .csv 형식으로 저장한다. 혹시 한글이 포함된다면 그 파일을 메모장으로 열어 다른이름으로저장을 누른 후 하단에 인코딩 utf-8로 설정해주면 나중에 생기는 오류를 방지 할 수 있다. 자신이 넣고자하는 테이블에 들어간 후 Result Grid 탭에서 Export/import 아이콘을 클릭한다. 자신이 테이블을 만들어 뒀다면 .. 2021. 6. 28.
[백준(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.
[프로그래머스(programmers)] (Summer/Winter Coding 2018) 영어 끝말잇기 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 영어 끝말잇기 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co... 2021. 6. 17.
반응형