본문 바로가기

Algorithm/Programmers33

[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.
[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.
[프로그래머스(programmers)] (Lv2) 피보나치 수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 피보나치 수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12945 문제 풀이 BigInteger 를 사용하는것이 핵심이다. 피보나치 수 를 구현하는 것은 문제 설명대로 풀면 되는거라 중간에 걸릴 것 없이 너무 쉽게 풀었다. 그래서 이게 Lv2라는 것이 의심될 정도로 금방 풀었는데, 테스트케이스 중간쯤 부터 오류가 났다. 왜 오류일까 생각해보니 int 의 한계란 생각이 들었다. 그래서 long 으로 다 변환을 해줬는데 그럼에도 오류가 났다. 그래서 System.out 으로 풀이 과정을 찍어보았는데 고작 n = 888 이기만 해도 long 범위를 한참 초과해서 음수값으로 바뀌는 현상이 .. 2021. 6. 13.
[프로그래머스(programmers)] (Lv2) 행렬의 곱셈 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 행렬의 곱셈 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 문제 풀이 내가 고등학생 일 때, 교육과정에서 행렬이 빠졌었기 때문에 행렬이 있었다는 말만 들어봤지 행렬 개념 조차 몰랐다. 그래도 문제에서 설명해주겠지 라는 마음에 문제를 들어갔는데 행렬에 대한 설명은 없었다. 행렬의 결과를 완성하는 함수를 작성해달라는 지문.. 2021. 6. 12.
[프로그래머스(programmers)] (Lv2) JadenCase 문자열 만들기 알고리즘 문제 풀이 / 프로그래머스 (programmers) - JadenCas 문자열 만들기 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12951 문제 풀이 처음 모든 문자들을 소문자로 변환한다. 첫 글자이거나, " "(공백) 있는 다음 글자를 대문자로 변환한다. 처음 풀었을 땐, char배열에 넣어서 첫글자이거나 공백다음은 대문자로, 아닌것들은 소문자로 바꾸는 식으로 풀었었다. 이렇게 했더니 12점을 받았다. 그러고 나서 다른 사람들의 코드를 보는데 애초에 첫 줄에서 모든 문자열을 소문자로 변환한 후, 해당 조건시에만 대문자로 바꾸는 방법도 있어서 그렇게 다시 풀어보았다. 그리고 다시 푸는 김에 이번엔 char 배열에 넣는것이 아니라 .spl.. 2021. 6. 10.
[프로그래머스(programmers)] (2020 카카오 인턴십) 수식 최대화 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 수식 최대화 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/67257?language=java 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 문제 풀이 숫자, 연산자들을 배열에 각각 나누어 넣는다. 재귀함수를 활용하여 순열로 연산자 우선순위를 구한다. Math.abs() 를 사용하여 절대값 구한다. 이번 문제는 내가 여태까지 푼 문제중 가장 오래 걸렸다. 총 2일이 걸렸는데 첫날에는 코드.. 2021. 6. 4.
반응형