프로그래머스에서 준 var answer = 0, return answer를 다 활용해야하는 줄 알고 풀었던 첫 문제. 리턴문에 삼항연산자를 써도 괜찮을 것 같다!
포인트는 결과를 정수로 만들어 주는 것!
이것도 처음에 주어진 var answer과 return answer을 꼭 사용해야 하는 줄 알고 제출했던 코드! %연산자를 써주면 되는 간단한 문제이다.
곱하기 연산자를 사용하면 되는 간단한 문제이다.
연산자를 사용하면 되는 간단한 문제이다!
나이는 태어난 연도에 1살이라는 제한사항을 보고 +1 하는 것을 까먹지 않으면 쉽게 풀 수 있다.
가장 기본적인 사칙연산 중 덧셈!
=는 대입연산자이고, ==은 관계연산자이다. 기본적인 if문을 쓸 줄 알면 어렵지 않은 문제이다!
처음에 내가 생각했던 로직:배열을 for문으로 풀어놓고, sum을 구하고, 그걸 배열의 길이로 나눠서 평균을 구하자!배열로 평균을 구할 수 없을까? 생각하다가 검색해보니 나온 reduce!reduce문을 화살표 함수로 더 간략하게 쓸 수 있었다.개념 공부를 하면서 re
양꼬치 /10 한 것을 정수로 바꿔줘서 서비스 받은 것을 구해줬다. 어렵지 않은 로직이라 금방 풀 수 있다!
parseInt()를 사용했다가 Math.floor의 실행속도가 0.01ms 더 빠르길래 수정했다!
바로 map이 떠올라서 map으로 풀었다!map 정리: 어떤 배열에 있는 모든 요소들의 값을 변경해서 새로운 배열을 써야 할 때 루프를 사용하는 대신, 콜백 함수를 이용해 각각의 요소에 호출해서 그 값을 변환 할 수 있게 해준다. 콜백 함수가 배열의 각 요소에 실행 된
for문을 돌리고, if문을 써서 홀수 인 값들만 배열에 넣어 줄 수 있으면 된다!
문제를 이해하면 아주 쉽게 풀린다.문제: 1판을 7조각으로 잘라주고, 모든 사람이 피자 한 조각 이상 먹기 위해 필요한 피자의 수를 return예를들어 사람이 7명일때는 사람수 7 / 피자조각 7 해서 1판이 필요하지만, 사람수가 8명이면 사람수 8 / 피자조각 7 (
내가 생각했던 로직:money - 5500 = 남은돈, 이게 money에 다시 들어가야함money < 5500 일때 breakbreak할때 배열.push(count, 남은돈) 넣어주기while(true)로 돌려도 됐을 듯..!if문을 잘 써주면 어렵지 않게 풀 수
배열 두 배 만들기에서 했던 것 처럼 map을 사용 해 주었다.아래와 같이 for..of로도 쉽게 답을 찾을 수 있다.
if문을 쓰면 아주 쉽게 풀 수 있는 문제이다.
forEach를 사용해서 짝수 일때는 evenCnt를 증가시켜줬고, 홀수 일때는 oddCnt를 증가 시켜줬다. forEach는 map처럼 각 요소에 대해 callback을 싱행하지만 map은 실행결과를 모은 새 배열을 return 해준다!
내가 생각한 로직:for..of로 배열 나열하기머쓱이 키(height)랑 배열의 원소들을 비교해서, 머쓱이 키보다 크면 count++;count 반환해주기풀고나니까 이것도 아까처럼 forEach로 풀 수 있을 것 같아서 풀어봤다.이런식으로 forEach, map, re
보자마자 reverse()함수를 써야 한다는 것을 캐치! reverse함수는 배열의 순서를 바꾸는 함수이기 때문에 string을 먼저 한글자씩 배열로 넣어줘야 했다. 그래서 split("")으로 한글자씩 배열로 넣어주고, reverse로 순서를 바꿔주고, 다시 join
문자열 뒤집기보다 쉬웠던 문제! 배열을 뒤집는 것 이기때문에 바로 reverse()함수를 써주면 된다.
slice() 메서드는 어떤 배열의 begin 부터 end 까지(end 미포함)에 대한 얕은 복사를 하는 함수이다. end index를 포함하지 않는다. 그래서 num2 + 1로 end index까지 포함해서 return 하게 만들어줬다.
내 로직가장 큰 수 뽑기 -> 배열로 주어지니까 sort()쓰기가장 큰 수와 나머지의 합 비교 (가장 큰수가 맨 앞에 오니까 0과 1 +2의 합 비교합이 크면 return 1, 아니면 return 2생각대로 잘 풀려서 신기했던 문제!! sort()함수와 배열, If문을
앞에서 삼각형의 완성조건 문제를 풀고 나니까 어렵지 않은 문제였다.sort()로 큰 수부터 정렬해주고앞의 두 자리를 곱해주면 된다.
처음 든 생각은 letter로 주어지는 단어를 없애서 반환해주면 되겠다. 였다. 떠오르는 메서드가 replace 여서 써봤는데 같은 단어가 두개 들어가 있으면 첫 단어만 없애주고 반환해주길래 replace 메서드는 전체를 바꿔주는게 아니라, 한번 찾고, 찾으면 바로 반
처음에 든 생각은, 받은 string을 배열로 한글자씩 나열해주고 n만큼 곱하고 join('')으로 다시 string으로 만들어 주면 되겠다! 였다. 근데 문자열에 n을 못곱하잖아..ㅎ(NaN이 나온다) 그래서 다시 생각을 해 보았다. 받은 문자열을 하나씩 배열로 만들
filter를 사용하면 된다는 걸 알았지만 사용법을 몰라서 for..of와 if를 사용해서 풀었다.아래는 filter를 사용해서 푼 답안이다. filter사용법을 익히기 위해 복사해왔다. 공부하자!
피자나눠먹기(1)에서 이해한 문제라서 쉽게 풀었다!
처음에 생각한 로직:배열로 바꿔준다 -> 배열의 길이에 \* 2를 해준다.return message.split("").length \* 2;그러다 string자체의 길이를 \*2 해줄 수 있나? 하고 찾아보니 있었다. length로 할 수 있구나..!ㅎ... 내장함수를
최대공약수 찾기가 어려웠던 문제. 먼저 분자, 분모를 구하고 둘 중 작은 수를 1씩 줄여가면서 for문으로 돌린다. 둘 다 나머지가 0이 나오는 수로 약분하면 되겠다고 생각해서 로직을 짰다. 그런데 검색해보니 유클리드 호제법이라는 알고리즘을 이용하더라.. 수학공부 시간
중앙값을 구하는 것! 정렬해주고, length/2해주면 된다. 소수점 뒷자리는 버려야 하니까 Math.floor를 해줬다. 자바스크립트에서 sort()는 ASCII 코드 순으로 정렬하니까, sort() 괄호안에 compareFunction을 넣어줘야한다. a,b 두개의
문제 풀이 어렵게 생각 할 필요 없다. 약수를 구하고, 약수의 개수는 순서쌍의 개수와 같으니까 약수를 배열에 push해주고, 그 배열의 length를 반환해주면 된다.
처음에 어렵게 생각해서 배열 length가 큰 거 먼저 돌리려고 생각했는데, 생각해보니 어차피 iterate 해야하는데.. 3에서 5를 비교하나 5에서 3을 비교하나 똑같은데..ㅎ 그리고 index도 필요없을 것 같아서 아래와 같이 for..of로 돌려주었다.
처음 생각했던 대로 하나하나 split하고 for..of로 배열을 나열해주고 다시 정수로 바꿔서 하나하나 더해줬다. 다 풀고 다른 사람들 풀이를 보니, reduce를 써서 해결 한 사람도 있고, 형변환을 해주지않고 10으로 나눈 나머지를 계속 더 해준 사람도 있었다.
처음에 떠올린건 indexOf와 includes지만 둘다 자주 써보지 않아서 검색을 해야 했다. 그래서 익숙한 split으로 문자열을 나눠주고, str2를 이용해서 나눠지면 str2가 str1속에 있는것이고, 안나눠지면 없는 것 이기때문에 split으로 배열로 만들어놓
내가 수학을 더 잘했더라면 정말 빨리 풀었을텐데...ㅎ......아쉬움이 많이 남는다!아무튼 제곱근을 구해주고 정수인지 아닌지를 판별해서 return 해주면 된다! 제곱근 중학교때 배웠나요..?ㅎ 곧 20년 되어서 기억이 안나네요..!ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
처음에 떠올린 것은 정규식 혹은 isInteger() 메서드 였다. 저번에 정규식을 활용해서 푼 적이 있어서 이번엔 isInteger()를 써 보았다.my_string을 for..of로 나열해주고, Number()로 숫자로 바꾼다. 숫자가 아닌 값들은 NaN이 된다.바
처음 생각했던 대로 장군이 먼저 때리고, 5보다 작아지고 3이랑 같거나 클때까지 병정으로 때리고, 2,1은 일개미가 때리게 만들어줬다. %연산자를 이용해 더 간단하게 풀 수도 있을 것 같다. 다시 풀어볼때 그걸로 풀어봐야지!! 공부하자!!
for문을 쓸 줄 안다면 아주 쉽게 풀 수 있는 문제이다!
주어진 코드사실 예전에 코딩테스트 연습했을때 별찍기 풀어봤던 기억이 있어서 for문 두번 돌려서 했던 기억이 있다. 그런데.. for문 두번돌리기는 아직 나한테 어려운 것 같아서, 그냥 쉽게 풀었다. 가로로 n만큼 찍고, m줄만큼 찍으니까 가로로 n만큼 repeat해주
앞에 풀었던 직사각형 별찍기보다 쉬웠던 문제!!if문을 바로 떠올렸다면 어렵지 않은 문제이다.특히 짝수, 홀수 구하는건 알고리즘 단골문제라서.. 2로 나눈 나머지가 0이 되는건 짝수, 아니면 홀수로 구해주면 된다.
중앙값 구하기에서 가운데 있는 값 구하는 것을 했었어서 쉽게 풀었다.일단 글자길이를 2로 나눠주고, 소숫점은 버려준다.4글자면 2가나오고, 5글자는 2.5가 나오지만 소숫점을 버려 2가 나온다.길이가 짝수이면 가운데 두글자를 반환해야하기때문에 len-1 과 len을 더
보자마자 for문으로 a부터 시작해서 b까지 더해주면 되겠다 라고 생각했다. 그래서 자신감있게i = a i <= b 해줬는데, a가 5이고 b가 3일때는 처음부터 i(a)가 b보다 크니까 for문을 안돌았다..ㅎ..^^...ㅎㅎ.. 아니 나 바보인가요..?Math
Number나 parseInt를 자주 썼기때문에, 바로 Number()로 형변환 시켜줬다. 그리고 뭔가 허전해보여서 다른 사람의 풀이를 봤는데, 와... str/1로 바꿔주다니..! 간지나는 답변이라 저장해둬야지..!!
처음에 어렵게 생각해서 1~9 배열을 만들어서 비교해서 없는 수끼리 더해야하나..? for문을 돌려서 비교해야하는 건가..? 없는 수는 어떻게 빼주지? 하는 생각을 하다가 문제를 잘 읽어보니 numbers의 모든 원소는 서로 다르다고 되어있길래, 결국 1에서 9 하나씩
Date()함수를 몰라서 어려웠다. Date() 함수를 검색해서 썼는데, month가 들어가는 곳에는 인덱스로 되어있어 1월이면 0이 들어간다. 그래서 a-1로 월을 맞춰줬다. Date()로 받아온 값을 toString을 해주면 요일(앞 세글자), 월, 일 년도가 나온
divisor로 나누어 떨어지는 값을 오름차순으로 정렬하는 문제였다. (나누어 떨어지지않는다면 -1을 반환한다.) 일단 내가 생각했던대로, 빈 배열을 만든다(answer)for..of로 받아온 배열을 풀어준다.if문을 써서, 배열의 값들이 divisor로 나누어떨어지면
for문을 잘 돌리면 쉬운 문제였다. answer라는 빈 string 변수를 만들어주고for문을 n까지 돌린다. 인덱스가 홀수이면 "수"를 찍어주고,짝수이면 박을 찍어준다.배열 push를 했던것처럼 풀었더니 어렵지 않은 문제였다.
처음에 participant.filter(e => completion.includes(e));만 생각했다가 개고생한 문제...^^... 아니.. includes()왜 안되냐고..!! 하면서 그것만 생각하다가 문제를 다시 봤는데 단 한명만 완주 못한다길래 그냥 for문
이건 알고리즘 챌린지 당시에 내가 풀었던 문제라서..ㅎ그때랑 다른 방식으로 풀어서 업데이트!
문자열 뒤집기와 비슷하게 풀어줬다! 어차피 배열로 반환하는거라 받은 숫자를 문자열 -> 배열 -> 뒤집기를 해준 후, 숫자로 만들어서 빈 배열에 넣어줬다.이것도 문자로 변환하지 않고 풀 수 있을 것 같은데..! 꼭 다시 도전해봐야지!
자연수 뒤집기에서 했던 것이랑 비슷하게,문자열로 만들고배열로 만들고(split)내림차순으로 정렬하고(sort)내가 사랑하는 for..of를 돌려서 만들어준 배열 하나하나 값 뽑아서숫자로 만들어서 빈 배열에 push해 주었다.그리고 그 배열을 다시 string으로 바꿔주
와 정말 리얼로 어려웠다. 못풀어서 답을 찾고도 이해를 못했다..!^^진짜 하나하나 다 콘솔 찍어보고 이해했다....밑에는 예시와 같이 써놓은 풀이이다!다시봐도 이해 할 수 있게 다 풀어서 써놨다..나 자신 화이팅@@
행렬..ㅋㅋㅋㅋ 내가 알던 그 행렬 맞나..? 고작 덧셈 주제에 나를 힘들게 했다...ㅎㅎㅎㅎ어제 이중 for문을 공부해서 다행..ㅎ 콘솔찍어가면서 값보고 돌렸다..아니.. 너무 어려워요.....역시 콘솔찍어보는게 최고! 같은 index가 필요할때 for문을 돌려야 하
for문과 if문을 알고 있으면 어렵지않게 풀 수 있는 문제이다.
for..of문을 쓰면 쉽게 풀 수 있다. reduce()로도 풀 수 있으니 꼭 다시 도전해보자!
사실 처음엔 replace를 써볼까 생각했다. 끝 4글자만 빼고 로 replace하기..? 이 끝 4글자를 어떻게 특정해서 뽑아야 할까? 하면서 문자열 자르기를 검색해보니 slice()함수가 나왔다.slice() 함수 가르쳐주는 블로그 참고하면서 일단 phone_num
빈 배열을 만들어주고, 1부터 n까지 곱한 값을 배열에 넣어준다.for문과 배열을 알면 쉽게 풀 수 있는 문제였다!
뭐 이런 소금물 문제같은..ㅎ 아니 어떤 놀이공원에서 이런식으로 장사해여...ㅋㅋㅋㅋ아무튼 문제는 길었지만 이해하면 어렵지 않은 문제였다!일단 price를 1부터 count까지 곱한 것을 더해준다. (price가 3이고 count가 4일때 30, 3+6+9+12)그리고
제곱수 판별하기 문제를 풀었으면 어렵지 않은 문제이다.제곱근을 구해서 (x+1)\*\*2 한 값을 구해주면 된다.제곱이 아니라면 -1을 리턴해주자!
조잡 of 조잡한 코드이지만 ㅎ... 그래도 내 힘으로 풀었으니까 만족!^^!분명히 코드를 줄일 방법이 있을 것 같은데.. 꼭 다시 풀어봐야지!일단 처음 생각은num이 1이 될때까지 반복문을 돌아야하고num % 2 == 0 (짝수) 일때 num / 2홀수일때 (num
사실 이 문제는 3진법으로 바꾸는 법만 알면 아주 쉽게 풀 수 있는 문제였다.3진법으로 바꾸기는 블로그를 참고했고,그래서 n.toString(3)으로 바꿀 수 있는 것을 알게 됨! (console도 찍어 봤다.)내가 사랑하는 split("")으로 배열로 만들어주고,배열
뭔가 filter 이런거 쓰고싶어서 사용법 찾아보다 때려치고 내가 사랑하는 for문으로 돌렸다..! for문아 우리 오래가자..🥹처음에 한 생각은 arr을 for문으로 펼친다빈배열(answer)에 하나씩 넣어주는데, if 지금 돌고있는 원소가 answer배열에 없으면
내적 이라는 것을 찾아보니.. ㅎ 음..! 모르겠다..! 하면서 다시 문제를 읽었다. 문제에 a와 b의 내적은 a\[0]\*b\[0] + a\[1]\*b\[1] + ... + a\[n-1]\*b\[n-1] 입니다. 라고 써져있었고, 배열들의 같은 인덱스를 곱한 것의 합
처음 든 생각은, p의 개수 카운트와 y의 개수 카운트를 해주자! 그리고 그걸 비교해야지카운트를 어떻게하지?하면서 생각한게 includes, match, indexOf같은 찾기 함수였다, 그럼 정규식 써서 다 찾아줘야하나..? 하면서 내 블로그 검색을 했다. 특정 문자
숨어있는 숫자의 덧셈에서 풀었던 것 참고해서 isNaN을썼다. 내가 사랑하는 split.. 영원하자..!!🥰 생각보다 오래걸렸던 문제이다.. 이유는? 내가 문제를 잘 안 읽었기때문..!!!!!! 문자열의 길이가 4이거나 6이라고 써져있는데 그걸 못보고 계속 돌리는데
배열 위치 찾기 자바스크립트를 검색해서 indexOf를 쓰면 된다는 것을 알았다. indexOf는 배열 안에서 찾으려는 값(searchElement)과 정확하게 일치(===)하는 '첫번째' element의 index를 리턴한다고 한다. 서울에 김서방은 한명 뿐이니까
일단 정답코드는 위와 같다.Math.min으로 arr1중 가장 작은 수를 찾고, indexOf로 위치를 찾아준다. 그리고 그 위치만 잘라준다. 그리고 잘린 배열 length 비교해서 1보다 작으면 -1 반환해주고, 아니면 잘린 배열 반환해주기.splice 참고: htt
자릿수 더하기를 풀었다면 어렵지않은 문제! 일단 자릿수의 합을 만들어주고, 주어진 수를 그 합으로 나누어준 나머지가 0이면 true를 return하고 아니면 false를 return 해주면 된다!