크레인 인형뽑기 게임
완주하지 못한 선수
모의고사
K번째수
체육복
2016년
가운데 글자 가져오기
같은 숫자는 싫어
나누어 떨어지는 숫자 배열
두 정수 사이의 합
문자열 내 마음대로 정렬하기
문자열 내 p와 y의 개수
문자열 내림차순으로 배치하기
문자열 다루기 기본
서울에서 김서방 찾기
소수 찾기워낙 유명한 문제인데다 자료구조 책에서도 본 적이 있어 사실 기억에 의존해서 풀었다.에라토스테네스의 체n이라는 숫자가 있을 때 1부터 n까지 나열한 뒤 n의 제곱근보다 작거나 같은 소수들의 배수를 지우면 소수만이 남는다.여기서 n의 제곱근보다 작거나 같은 소수
수박수박수박수박수박수?다른 사람의 풀이를 보고 듣도보도 못한 메소드를 하나 알아냈다;;repeat이 es6스펙에 있어서 몰랐던 것 같다
문자열을 정수로 바꾸기???문제의 의도가 뭐임...
시저 암호처음에는 아스키 코드를 이용해서 풀려고 했으나 생각보다 간단한 것 같지 않아서 노가다를 선택해버렸다
약수의 합1부터 n까지 순회돌아서 배열을 만들고 거기에 reduce함수를 써서 함수형 프로그래밍으로 짜는 방법을 쓰려고 했는데, 사실 복잡한 문제도 아니고 해서 그냥 명령형으로 풀었다.이걸 재귀로 푼 경우도 있던데, 효율성이 나은 걸까 (어차피 약수 확인하는 방법은 나
이상한 문자 만들기함수형 프로그래밍에 너무 집착하는 건가 싶기도 하고...?
자릿수 더하기
자연수 뒤집어 배열로 만들기
정수 내림차순으로 배치하기
정수 제곱근 판별양의 정수의 제곱근인지 판별할 때 내가한 것처럼 Math.floor의 결과값과 비교할 수도 있고, parseInt의 결과값과 비교할 수도 있다.Math.pow대신 \*\*연산자를 쓰면 거듭제곱이 가능하다(es6스펙)
제일 작은 수 판별하기유의미한 차이인지는 모르겠으나 filter메소드를 쓰지 않고 splice로 최소값을 가려내는 방식이 실행 시간이 조금 단축되었다.아마 filter메소드는 배열의 각 요소마다 비교 연산을 해야 해서 그런 것 같다.
짝수와 홀수???
키패드 누르기코드가 개판인 건 둘째 치고, reduce를 쓰고 싶은데 reduce함수에 넘겨 줄 수 있는 인자가 고정되어 있어 어려운 것 같다.정해진 인자 외에 다른 인자를 전달할 수 없기에 결국 전역 스코프에 변수들을 선언시켜 접근하게 해야했는데 hand같은 인자는
최대공약수와 최대공배수getLCM 함수에서 reduce의 보조 함수를 밖으로 빼낼 수가 없다.(firstHash와 secondHash를 인자로 전달할 방법이...)소인수분해가 정석일 거라 생각해서 이렇게 풀었는데 어째 코드가 너무 길고 복잡하다 했더니 아예 방향을 잘못
콜라츠 추측항상 프로그래머스는 solution함수를 작성하고 인자도 지정해주니 인자를 추가할 수 없는 줄 알았는데, 기본값을 지정해주면 가능한 거였다.
평균 구하기 2020.07.28 reduce짱!
햐사드 수
핸드폰 번호 가리기
행렬의 덧셈
x만큼 간격이 있는 n개의 숫자명령형으로 짰더니 여지 없이 함수형으로 짠 풀이가 있었다.(얼른 es6를 공부해야...)Array()와 new Array()는 기능상 동일하다fill이 있으니 함수형 프로그래밍이 좀 더 용이해질 것 같다.(앞에 있는 문제 리팩토링할 수 있
직사각형 별찍기repeat메소드가 있으니 굳이 for문을 돌릴 필요가 없다.자바스크립트로 코딩테스트를 볼 때 곤란한 점 중 하나가 입력값 받는 형식인데, 이 사례를 참조해야겠다.(readline도 차차 보긴 해야...)
예산sum보다 budget이 클 때 remainder가 음수가 나오는데, remainder가 0일 때만 return d.lenght를 하도록 처음에 설정해서 예외를 찾는데 한참 걸렸다.
\[1차] 비밀지도2진수 변환을 직접 구현할 필요가 없다니...repeat만 해도 굉장히 유용하다고 생각했는데, padStart가 있으면 코드가 더 깔끔해진다.끝까지 가면 결국 정규표현식인 것 같다지금은 정규표현식까지 공부하기에는 시간이 부족해서 일단 보류해뒀지만, 정
실패율reduceHelper2함수에서 원본 배열을 수정해서 반환했는데 이게 좋은 방법인지 잘 모르겠다.(불변성이 중요하다고 어디서 본 것 같은데...)
\[1차] 다트 게임도저히 함수형으로 답이 안 나와서 명령형으로 풀었더니...이 문제는 정규표현식을 쓰냐 안 쓰냐가 너무 차이날 거 같은데 정규표현식을 공부를 해야 되나 ㅠ
기능 개발큐로 푸는 문제
쇠막대기사실 예전에 풀어봤을 때 다른 사람의 풀이 중 인상 깊었던 부분이 있어서 그걸 떠올리면서 풀었다.정규표현식이나 split/join메소드를 활용하여 레이저 부분을 치환하는 것이 보기에 더 직관적인데 실행 시간이 다소 길어지는 것은 감안해야 한다.
프린터좋아요를 가장 많이 받은 풀이랑 접근법이 똑같은 거 같은데 왜 내 풀이가 더 느린지 모르겠다...
다리를 지나는 트럭do while 처음 써봤다
탑와 이걸 함수형으로 푸는 사람이 있네...
가장 큰 수 2020.07.29
124 나라의 숫자풀다 보니 풀었는데 왜 풀렸는지 모르겠다내꺼랑 논리는 같은데 1줄로 풀어버리는 사람도 있네...
스킬트리level 2만 돼도 함수형으로 풀지를 못하겠네 ㅠ중첩 반복문 극혐중첩반복문을 쓰지 않고도 풀 수 있을 것 같아서 해봤는데 생각해보니 결국 순회는 같은 수만큼 하는 거라 별 의미 없는 짓이었다차라리 정규표현식 연습을 하는게 더 나을지도 모르겠다
문자열 압축의외로 정규표현식 풀이가 없네
괄호 변환자꾸 배열과 문자열을 왔다갔다하니 실행 시간이 길어지는 문제가 있었다.
소수 찾기심각하게 비효율적인 풀이 결과가 나왔다.numbers로 구성 가능한 경우의 수를 모두 구현하는 방법을 알지 못해 최대값을 구한 뒤 1까지 내려가면서 하나하나 조건 검사하는 방법을 선택한 게 잘못인 것 같다.문제는 다른 사람의 풀이를 봐도 모르겠다는 것...다들
H-Index 2020.07.30 정렬 문제란 걸 알고 풀었으니 이렇게 풀었지 아니었으면 filter쓰고 완전 돌아갔을 것 같다. 최대값 구하는 문제니 뒤에서부터 접근해야 된다고 생각했는데, 중복되는 항목이 있을 수 있으므로 앞에서부터 접근하는 게 맞음
위장너무 풀기만 하면 그만이라는 식으로 짠 것 같아서 리팩토링 해보았다.
베스트앨범뭔가 이거다 싶은 풀이가 따로 없네...
올바른 괄호스택으로 푸는 가장 대표적인 문제라서 알고 풀었다.다른 사람의 풀이가 더 실행 시간이 적게 걸려 참고해서 재구성해봤다.분명 for문에서 s.length이런 식으로 작성하면 매번 length를 계산해야 돼서 느려진다고 들었는데 오히려 변수 선언해서 length
다음 큰 숫자toString메소드로 진법 변환이 가능하다는 것과 parseInt로 진법에 맞춰 정수 변환이 가능하다는 것을 기억해둬야 시간 단축을 할 수 있음(언제 직접 구현하고 있냐)이걸 시프트 연산자로 푼 사람이 있네;; 지독하다
숫자의 표현for문의 중간을 저렇게 비워둔 게 너무 찝찝한데...중첩 반복문을 쓴데다 거의 모든 경우의 수를 다 순회하는 거라 당연히 이렇게 푸는 건 아니겠거니 생각은 했지만 다른 사람들의 풀이는 봐도 이해할 수도 없었다.(망할 수학)
최댓값과 최솟값아니 Math.max랑 Math.min도 결국 순회하면서 값 찾아내는 거 아닌가?기껏 순회 두 번 안 돌릴려고 sort한 다음에 첫번째 인덱스랑 마지막 인덱스로 접근했더만 더 느리네;;(mdn에서 sort메소드의 속도 및 시간 복잡도는 구현방식에 따라 다
최솟값 만들기이게 왜 맞지...?sort가 원본 배열 바꾸니 굳이 할당 안 해줘도 될 것 같다
JadenCase 문자열 만들기공백 문자 여러개 예외처리를 내가 실전에서 생각해낼 수 있을지 모르겠다.아 숫자에는 toUpperCase, toLowerCase가 영향을 안 미치니까 굳이 숫자를 구분해줄 이유가 없네;;공백이 여러 개 겹쳐서 빈 문자열이 들어올 때는 to
N개의 최소공배수유클리드 호제법 만세(소인수분해 노쓸모)
오픈채팅방 2020.08.01
멀쩡한 사각형기울기로 풀어보려고 끙끙대다가 도저히 안 돼서 결국 질문하기를 참조해서 풀었다 ㅠ이 문제는 가로와 세로의 길이를 서로소로 만드는 게 핵심인 듯하다.최대공약수로 나눠 가로와 세로의 길이를 서로소로 만들고, 좌측 상단에서 우측 하단으로 선이 지나가면서 가로선을
당연히 이렇게 푸는 게 아니겠지 싶었지만 푸는 데 의의를 뒀다.정규표현식은 무조건 어렵다는 생각에 아예 쓸 생각도 안했는데 여기서 replace메소드를 쓰는 정도는 연습해두는 게 맞았다. 그렇게 어려운 부분도 아니고좋아요를 가장 많이 받은 사람의 풀이를 보니 엄청난 차
폰켓몬set도 잘 모르고 썼는데 얼른 es6공부!!!
점프와 순간 이동거리가 짝수면 순간이동, 홀수면 한 칸 점프하고 순간이동 이렇게 역순으로 생각하면 된다.
영어 끝말잇기이걸 함수형으로 풀어내는 사람이 있네...
짝지어 제거하기스택을 이용하면 O(n)으로도 끝나는구나...아래는 다른 사람의 풀이를 참고하여 좀 더 간결하게 재구성한 코드
예상 대진표클린코드의 관점에서 조건문은 어디까지 캡슐화해야 좋은 걸까isQuotientEqual && isRemainderInRange도 하나의 함수로 묶어야 하나..?(isMatched 이런 걸로?)내가 접근한 방법은 a-1과 b-1를 각각 2의 round승으로 나눈
\[1차] 뉴스 클러스터링정규표현식을 공부하긴 해야되겠는게, 여기서 정규표현식을 안쓰면 배열 안에 a부터 z까지 일일이 하드코딩으로 담고 또 includes메소드로 찾아야 함별로 큰 변화는 아니지만 교집합과 합집합이 어차피 길이만 반환하기 때문에 아래와 같이 재구성해보
\[1차] 캐시이거는 연습이니까 풀었지 내 실력으로는 실전에서 예외 절대 못 찾을 거 같다ㅠ
\[1차 프렌즈4블록](https://programmers.co.kr/learn/courses/30/lessons/17679이걸 실전에서 어떻게 푸냐...터지고 내려온 다음 빈 자리를 NaN으로 채웠는데 이는 터지는 4개를 검사할 때 NaN == NaN이 fa
\[3차] 방금그곡다른 사람의 풀이 중 유독 성능이 좋은 코드가 있었다. 마지막 테스트 케이스 2개는 다른 어떤 풀이에서도 실행 시간이 거의 3~4배 가까이 걸렸는데 이분 풀이는 유독 짧게 걸렸다.문자열을 치환하는 함수에서 정규표현식을 쓰니 내 풀이에서도 마지막 두 테
\[3차] n진수 게임풀다가 복창 터질 뻔한 문제;;처음에는 아래와 같이 재귀로 접근했는데 아무리 해봐도 테스트 케이스 6개를 통과하지 못했다.대체 왜 반복문이면 되고 재귀면 안 되냐고재귀가 콜 스택을 계속 잡아먹고 있어서(즉, 공간복잡도가 너무 커서) 그런가 싶긴 한
카펫
이중우선순위큐
타겟 넘버
수식 최대화
소수 만들기
[3차] 압축
정수 삼각형
피보나치 수
땅따먹기
가장 큰 정사각형 찾기
네트워크
단어 변환
여행경로
디스크 컨트롤러
자물쇠와 열쇠