내 바보 같은 코드 올리는 게 넘 부끄럽지만.. 문제 프로그래머스 문제 내 풀이 개선점 i는 0부터 시작할 필요가 없다. 1부터 시작해도 된다.
문제 프로그래머스 문제 내 풀이 개선점 화살표 함수의 유일한 문장이 'return'일 때 'return'과 중괄호({})를 생략할 수 있다.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 아래처럼 문자열을 만들 수 있다는 걸 알게 되었다. reduce()는 쌩문자열로는 못돌리고 split("")으로 배열로 변환하고 돌려야 된다.
문제 프로그래머스 문제 내 풀이 개선점 위에 문자열로 처리하는 풀이는 쓰면서도 배열을 두번 왔다갔다하니까 성능이 그리 좋지 않겠다는 생각이 들었다. 그래서 아래처럼 수학적으로 푼 사람 코드 갖고왔다. while과 do while의 차이는 while은 한번도 실행 안될 수 있지만 do while 무조건 한번은 실행된다는 점이라고 한다.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 바보같이 대소문자 상관없이를 저렇게 썼다. toUpperCase()나 toLowerCase()를 썼으면 저렇게 split 2번씩이나 할 필요가 없어진다. match로 푼 사람의 풀이법도 갖고왔다. match는 정규식을 알면 더 쓰기 좋다.
문제 프로그래머스 문제 내 풀이 개선점 아래와 같은 풀이도 있었다.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 사람들 댓글 보니까 내 풀이는 근본이란다ㅋㅋ Array(n).fill(x) -> x를 n개만큼 채운 array를 생성
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 확실히 나는 문제가 지시하는 바를 그대로 코드로 나타내려고 하는 거 같다. 아래 코드는 수학적으로 그냥 쓴 사람 거다. 그 쭉 나열된 정수의 합 구하는 공식? 가장 끝수 둘을 더하고 그 둘만큼의 조합이 반복되는 만큼 곱한다음 2로 나누는 그거.
문제 프로그래머스 문제 내 풀이 개선점 내가 아직도 OR랑 AND 조건을 헷갈려한다.
문제 프로그래머스 문제 내 풀이 개선점 아래는 정규식을 이용해서 푼 사람이다. \d는 숫자를 의미 \d(?=\d{4}) -> (?= )는 \d를 찾는데 이 뒤가 \d{4}인 \d를 찾는다는 의미라고 한다. -> 중괄호 안에 있는 건 앞의 문자가 최소 n번 반복된다는 의미이다
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 Math.min 꼭 두개씩 비교해야 되는 줄 알고 ㅋㅋㅋ 똑같은 내용이어도 아래처럼 쓰면 라인이 훨씬 줄어든다.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 아래처럼 풀고싶었으나...
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 아래처럼 풀면 sort, reverse 두번이나 안돌려도 돼서 더 나은 거 같다. 문자열 차순 조정할 땐 이렇게 하는 거구나 배웠다.
문제 프로그래머스 문제 내 풀이 개선점 정규식을 밑에처럼 쓰면 길이 체크까지 한번에 해준다. ^ 문자열 시작, $는 문자열 끝이라는 뜻이다. |는 or 조건이다. 정규식.test(문자열) -> boolean으로 나온다.
문제 프로그래머스 문제 내 풀이 개선점 Number.isInteger()를 쓰면 나처럼 길게 조건문 안써도 된다.
문제 프로그래머스 문제 내 풀이 개선점 n * (n + 1) / 2 * price로 푼 사람들이 엄청 많았다. 1씩 안 늘어난다고 저렇게 생각 못하는 나 >.,~
문제 프로그래머스 문제 내 풀이 개선점 루프 두번 안 돌리고 싶었는데 남들 풀이도 다 루프 두번씩 돌린다. 아니면 재귀함수 쓰거나.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 개인적으로 어려웠다. 아래는 유클리드 호제법을 이용한 풀이란다. 솔직히 읽어도 원리는 모르겠고... 그냥 a / b -> b / a%b -> a%b / b%(a%b) 를 뒷자리가 0이 될 때까지 반복하면 최대공약수가 나온다는 얘기라고 한다. 밑에도 위와 원리는 같은 건데 for문을 이렇게도 쓸 수 있구나 싶어서...
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 정규식을 이용한 풀이가 있길래 정규식 공부할 겸 \w -> 숫자, 영문, 언더바 (\w)(\w)는 연속된 두문자를 의미한다고 한다.
문제 프로그래머스 문제 내 풀이 string.toString(10진법 아닌 진법) parseInt(10진법 아닌 수, 현재 진법)
문제 프로그래머스 문제 내 풀이 개선점 아래 풀이를 통해 findIndex()와 ~연산자의 존재를 알았다. ~ 는 bitwise Not인데 말그대로 bit단위를 반대로 바꾼다는 거다.(0 1) findIndex()도 매칭되는 값을 못찾으면 -1을 리턴하는데 0이 아닌 값은 true로 보기 때문에 그럴 때 ~를 많이 사용한다고 한다.
문제 프로그래머스 문제 내 풀이 개선점 풀면서도 참 찝찝했다. 어찌저찌 억지로 풀어내긴 했는데 분명 남들은 이것보다 더 획기적인 걸 했을 거라 빨리 엉망으로라도 풀어버리고 남의 것을 보자고 생각했다. 아래 거는 나랑 아이디어는 거의 같고 for문으로 적어내신 분 거 아래는 n <= 25라는 조건을 잘 살려서 푸신 분 거다. 뒤에 공백도 숫자 맞춰서 넣...
문제 프로그래머스 문제 내 풀이 JS에서도 SQL처럼 pad()가 있을 거 같아서 찾아보니 역시나 있었다. 후후 -> padStart(n, s), padEnd(n, s) 이 둘은 처음을 채우냐 끝을 채우냐의 차이다. 개선점 나처럼 두 라인을 굳이 더하지 않고도 둘 중 하나가 1인지를 알아내는 사람들의 풀이가 많았다. | 연산자를 true / false...
문제 프로그래머스 문제 내 풀이 개선점 reduce를 꼭 누적으로만 생각하지 않고 값 비교에 사용한 게 좋아서 갖고왔다.
문제 프로그래머스 문제 내 풀이 문자열.charCodeAt(인덱스) -> 유니코드로 해당 인덱스의 문자 찾아줌 개선점 localeCompare 메소드 처음 봐서 갖고왔다. 두 문자열의 사전순으로 비교해준다고 한다. 기준문자열.localeCompare(비교문자열) -> 비교문자열이 기준문자열보다 뒤에 있으면 -1, 앞에 있으면 1, 같으면 0 아래는 아...
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 [...new Set(array)] -> 배열의 중복 요소를 거를 수 있다.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 set은 size로 length를 알 수 있다.
문제 드디어 정답률 50%로 진입! 프로그래머스 문제 내 풀이 개선점 내 거보다 훨씬 보기 편안하다. a1[i%a1.length] 이 부분 나는 생각 못해서 정답만큼 답안패턴도 늘리는 길을 택했다^^............... 바보인듯
문제 프로그래머스 문제 내 풀이 처음 풀이는 정확성만 맞고 효율성 0점이어서..^^.. 남의 도움을 받아야만 했다. ▽ 남의 도움 어떤 자연수 n이 있을 때, √n 보다 작은 모든 소수들로 나누어 떨어지지 않으면 n은 소수입니다. 언뜻 이해하기 힘들겠지만 한 번 이해하면 쉽습니다. 증명을 생략하고 예를 들겠습니다. 먼저 101이 소수인지 아닌지 판별하기 ...
문제 프로그래머스 문제 내 풀이 누가누가 중첩루프 많이 쓰나 대결 1등 다행인 건 남들도 이렇게 풀었다 후후.
문제 프로그래머스 문제 내 풀이 카카오 문제라 그런가 문제 지문 길고.. 어렵다.... 힝 개선점 나랑 논리는 똑같은데 나보다 훨씬 예쁘고 알아보기 쉬워서 갖고왔다.
문제 프로그래머스 문제 내 풀이 20"
문제 프로그래머스 문제 내 풀이 개선점 reduce를 이용해서 배열 안의 값들을 루프 두번 안 돌리고 계산한 방법이 신기하다.
문제 프로그래머스 문제 내 풀이 개선점 아래 풀이는 문제가 좀 바뀌었는지 안 맞는 테스트 케이스가 있다고 하지만 아이디어가 멋져서 갖고왔다. 절대값을 이용해서 찾는 부분이 좋다.
문제 프로그래머스 문제 내 풀이 1점짜리 내 풀이..^^ 개선점 으아니 for문 i--로 할 생각을 왜 못했는지.. 리버스하고 난리났다.
문제 프로그래머스 문제 내 풀이 while로 루프 돌려서 배열을 제거해가면서 푸니까 시간초과가 나고 for로 원본 배열 훼손 안 하고 푸니까 시간초과가 안 난다. 개선점 아래는 미리 못쓰는 사과 개수는 떼어버리고 시작한 풀이다.
문제 프로그래머스 문제 내 풀이 개선점 charAt(index) -> index에 있는 문자 나처럼 word[0]으로 첫문자를 가려낼 경우 연속된 공백이라는 조건에 걸려 undefined이 뜨는 경우가 생기는데 charAt()은 빈문자열을 반환한다고 한다.
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 맨 처음에는 while + 문자 소거로 풀었는데 효율성 문제에서 통과를 못했다. 배열이나 문자열을 제거해나가면서 루프를 돌리는 건 역시 효율성이 많이 떨어지는 거라는 걸 배운 문제 개선점 cum += paren === '('? 1: -1 이 부분이 좋아서 갖고왔다.
문제 프로그래머스 문제 내 풀이 맨 처음에 for를 돌려서 0을 지운 횟수를 체크했더니 마지막 문제에서 시간초과가 났다. 그래서 그냥 0 개수 split해서 세고 replaceAll 처리했더니 속도가 굉장히 개선됐다. 1점 맞은 답변^^! 개선점 match() -> 찾는 문자열을 그 개수만큼 배열로 리턴
문제 프로그래머스 문제 내 풀이 루프 한 번만 돌리려고 while문에 index를 2개 돌리는 방식을 취했다. 개선점 아래의 풀이는 숫자가 가진 홀수 약수의 개수가 정답이라고 하는데 잘 이해도 안 가고 나보고 설명하라고 하면 못 할 거 같아서 그냥 이런 풀이도 있구나까지만!
문제 프로그래머스 문제 내 풀이 그냥 피보나치 배열 구해서 구했다가 에러 나고 난리가 나서 봤더니 수열이 뒤로 갈수록 JS에서 감당하지 못하는 큰 숫자가 나와서 그렇다고 했다. 질문하기에 사람들이 써놓은 거 보고 풀었다. (A+B)%C = ((A%C)+(B%C))%C -> 이 속성을 이용해서 작은 수만 연산할 수 있도록 하는 것이 포인트였다.
문제 프로그래머스 문제 내 풀이 개선점 나보다 while문을 잘 쓰는 사람 거 재귀함수로 쓴 사람 거
문제 프로그래머스 문제 내 풀이 개선점 i는 세로, x는 가로일 때 한 변의 최솟값인 3부터 시작해서 세로값이 가로값과 같거나 작을 때까지 루프를 반복한다. 나처럼 for 두 번 안 쓰고 바로 계산한 사람 거. 난 왜 for를 두번 썼지..?
문제 프로그래머스 문제 내 풀이 두 지점 간의 거리를 구하기 위해 좌표방식을 사용했다. 개선점 test()를 활용해서 조건문을 길게 안 쓸 수 있다.
문제 프로그래머스 문제 내 풀이 개선점 나는 윗줄부터 아래줄까지의 상태를 제시한 board를 변형시키지 않았기 때문에 빈공간(0)이 아닌 부분까지 파고들기 위해서 중첩 루프를 썼다면, 아래의 풀이는 애초에 빈공간을 버리고 행과 열을 바꿔서 중첩할 필요없이 pop()하면 원하는 인형을 뽑을 수 있게끔 푼 풀이다. 이렇게 풀면 격자가 커지고 빈공간이 많아져...
문제 프로그래머스 문제 내 풀이 개선점 정규식 넘 외우기 힘들다. .replace(//g, '') -> 이렇게 쓰면 ~를 제외한다는 의미이다. -> 대괄호 없이 ^만 단독으로 쓰이면 문자가 ~으로 시작하는 문자라는 의미이다. \w -> 영어 + 숫자 + 언더바(_) /\.+/ -> .이 1번이상 반복한다. /^$/ -> 빈 문자열
문제 프로그래머스 문제 내 풀이 진짜 한참 푼 문제인데, 함수를 작성하는 방향은 어렵지 않게 생각할 수 있지만 자꾸 시간초과가 나서 힘들었다ㅠㅠ. 계속 시간초과 나던 풀이는 나머지 다 똑같은데 "00" -> "0"으로 바꾸기 위해 리턴 전의 if문이 없었고 그걸 그냥 리턴문에서 처리했다.
문제 프로그래머스 문제 내 풀이 이것도 처음에 똑바로 풀었다고 생각했는데 자꾸 몇 개 테스트 케이스를 못 통과해서 힘들었다. 알고보니 테스트 케이스가 "mayaa"일 때 맨 처음에 "aya" -> ""로 대체해버리면 남은 글자가 "ma"가 되어버리면서 발음할 수 있는 경우가 되어버리는 거였다. 그래서 replace를 ""가 아니라 " "로 처리했다. 개...
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이
문제 프로그래머스 문제 내 풀이 개선점 for문으로 푼 풀이
문제 프로그래머스 문제 내 풀이 stack에 문자열로 접근하면 효율성 통과를 못하는데 배열로 접근하면 통과한다!