공부/프로그래머스
-
Lv2)JS - 위장공부/프로그래머스 2022. 2. 28. 14:46
문제링크 코딩테스트 연습 - 위장 programmers.co.kr 느낀점 문제를 보면서 재귀를 생각했는데 재귀에서 return하려는 조건에서 막히는 문제가 발생했다. 어떤 조건을 설정해야 할지 고민하고 이것저것 시도 해보고 count라고 변수를 만들어도 보았지만 뭔가 문제가 시원하게 해결이 되지 않았다. 다른 분이 푼 부분을 참고 하고 해당 문제의 풀이법을 이해하기로 했다. ※ 풀이 1. 동일한 옷은 없다. 동일한 종류는 존재한다. (즉, 얼굴, 상의, 하의, 겉옷의 종류는 여러개 존재한다.) 2. 그러나 동일한 종류의 옷을 입은 경우 동일한 종류의 옷을 또 입을 수 없다. 3. 종류를 몇번 사용할 수 있는 지 확인 한다. 4. 종류에서 하나도 옷을 안 입은 경우도 포함되어야 한다. 다른 풀이 funct..
-
Lv2)JS- 큰 숫자 만들기공부/프로그래머스 2022. 2. 23. 13:22
문제링크 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 느낀점 이전에 사용했던 숫자들은 사용하지 않기 때문에 쉽게 문제를 풀 수 있을 것이라고 생각했지만, 이번 문제도 역시 그렇게 쉽게 풀수있는 문제는 아니였다. 이번 문제의 중요키는 stack으로 생각하는 것이다. 내가 확인한 숫자를 stack에 넣고 다음 숫자가 크면 기존에 있던 숫자를 제거하고 다시 stack에 넣는 방식을 이용하는 것이다. 물론 내가 푼 방식으로 해결이 되지 않아서 다른 분의 풀이를 참고하였다. 문제를 풀다 보면 다 푼 거 같은데 테스트 케이스 12번에서 왜 안풀리지라는 의문점이 드는데 질문하기에서 그 해답을 찾을 수 있었다. 테스트를 돌릴 때 number를 "1000", K를 1로 하게 되면 1000이라는 숫자..
-
Lv2)JS - 영어 끝말잇기공부/프로그래머스 2022. 2. 22. 00:49
문제링크 코딩테스트 연습 - 영어 끝말잇기 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.kr 느낀점 이번 문제는 하나의 반복문 안에서 문제를 해결 할 수 있을 것이라고 생각했다. 끝말잇기기 때문에 현재값과 이전값을 비교하면서 진행하면 충분히 풀 수 있을 것이라고 생각했으..
-
Lv2)JS - N개의 최소공배수공부/프로그래머스 2022. 2. 13. 22:13
문제링크 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 느낀점 분명히 최소공배수를 푸는 방법을 학습했었는데 기억이 나지 않고 내가 풀었고 블로그에 기록을 했지만 안보고 풀고 싶었다. 분명히 while문으로 풀면 풀 수 있을것이라고 생각했는데 break가 되지 않고..... 그래서 재귀를 이용해서 문제를 풀었는데.... 테스트 케이스 1개가 런타임 오류가 발생... 결국 다른 분들의 풀이를 참고 했다. 유클리드 호제법 두 양의 정수 a,b(a>b)에 대하여 a를 b로..
-
Lv2)JS- 짝지어 제거하기공부/프로그래머스 2022. 2. 10. 15:55
문제링크 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 느낀점 처음에 문제를 while문으로 풀려고 했다가 이건 아닌거 같아서 반복문으로 풀려고 했는데 동일한 문자를 어떻게 처리할까 고민을 많이 했다. 하지만 질문하기에서 실마리를 얻었다. 이번 문제는 Stack으로 풀면 해결할 수 있을 거라는 것을 그래서 Stack으로 문제를 접근했는데 효율성 2번이 통과가 되지 않았다. 아직 원인은 찾지 못했다. 내가 생각할때 문자열과 배열의 차이라고 생각이 들지만 정확한 부분은 아직 모르겠다. 테스트 케이스..
-
Lv2)JS - 행렬의 곱셈공부/프로그래머스 2022. 2. 10. 00:36
문제링크 코딩테스트 연습 - 행렬의 곱셈 [[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 느낀점 역시 레벨 2 부터는 문제가 어려운 느낌을 많이 받고 있다. 문제를 풀긴 풀었는데 어떤 부분에서 오류가 존재하는 거 같다. 그부분만 해결하면 문제를 풀 수 있을 거 같은데 실마리를 찾지 못했다. 다른 분이 푼 풀이를 봤을 때 비슷한 형식으로 갔는데, 내 코드에 특정 부분에서 문제가 있는거 같다. 우선, 이 문제는 행렬의 곱셈이 어떻게 진행되는 지 알아야한다. 행렬의 곱셈은 첫번째 행렬의 행과 2번째 행렬의 열을 연산하는 방식인 것..
-
Lv2)JS - 타겟넘버공부/프로그래머스 2022. 2. 8. 12:33
문제링크 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 느낀점 재귀를 활용해서 문제를 풀어야 겠다는 생각을 가지고 있었다. 그러나 재귀 안에서 for문으로 정답을 얻으려고 하니 원하는 값이 나오지 않았다. 그러다 질문하기에서 다른분의 힌트를 얻었다. 재귀를 돌리지만 for문으로 하지 않고 한번씩만 사용한다고 생각을 하면 문제가 어느정도 풀릴 것이라는 것이였다. 그래서 for문에 있던 재귀함수를 제거 후 else문에 넣어주니까 해결 할 수있었다. 재귀를 사용해도 어떻게 사용하느냐가중요할..
-
Lv2)JS - 기능개발공부/프로그래머스 2022. 2. 7. 12:16
문제링크 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 느낀점 문제를 보면서 어떤 수학 공식이 떠오른 것은 아니지만 100이라는 숫자를 활용해야 된다고 생각이 들었다. 100-작업진도를 한후 해당 값들을 속도에 나누기 해주는 방식을 생각하고 나니 어느정도 문제의 실마리를 풀 수 있었다. 그러나 문제를 풀면서 테스트 11번이 통과가 되지 않았는데 11번 테케의 실마리는([96,94],[3,3]) 으로 코드를 입력하면 [2]라는 값이 출력 되야 하지만 내코드의 문제는 [1,1]로 출력이 되고 있었다. 여..