본문 바로가기
반응형

javascript15

[JS] 프로그래머스 오픈채팅방 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 해결 방안 구상 1. Enter와 Leave 구별 / id & nickname 구별하기 2. Enter와 Leave에 따라서 알람문구 설정해서 출력하기 오답 내가 생각한 해결방안대로 진행하기 위해 우선 "enter id nickname"을 나누기위해 split(' ')을 사용했다. 그 다음 id와 nickname도 받아왔다. a = ['b', 'c'] {b: c.. 2021. 9. 14.
[JS] 배열을 객체로 배열을 객체로 변환시켜야 하는 방법 const array = [ 'apple', 'banana', 'lemon' ] 1. Object.assign( { } , array ); 객체를 복사하거나, 객체끼리 합하는데 사용 되기도 한다. 배열을 객체로 변환시킨 원리도 { } 빈 객체에, array를 객체로 변환시켜 더했다 생각하면 된다. 객체에서 중복된 값이 있다면 덮어 씌운다. a : 1이 a : 6으로 변경된 것을 알 수 있다. 2. array.reduce( (target, key, index) => { target[index] = key ; return target }, { } ) reduce( ) 메서드는 워낙 중요한 메서드 이기 때문에 추후 따로 정리해야겠다. 3. { ...array } 스프레드 연.. 2021. 9. 10.
[JS] 프로그래머스 프린터 문제 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 해결 방안 구상 priorities의 첫 번째 인자를 추출해 나머지 인자들과 비교한다 큰 숫자가 있다면 뒤로 보낸다, 큰 숫자가 없다면 제거한 후 answer에다 +1을 더한다. 지정한 차례가 온다면 answer를 return 한다. 해결 답안 🧚🏻‍♀️ while 반복문이 익숙하지 않아서 for를 이용해 해결하려해서 시간을 많이 소비했다. 반복문을 for만 .. 2021. 9. 9.
[JS] map()에 관하여 map()에 대해 더 자세히 알아야 겠다는 생각이 들어 정리하기! array.map(callbackFunction(currenValue, index, array), thisArg) callbackFunction , thisArg 두 개의 매개 변수, callbackFunction은 currenValue, index, array 세 개의 매개 변수. currentValue : 처리할 현재 요소 index Optional : 처리할 현재 요소의 인덱스 array Optional : map()을 호출한 배열 thisArg Optional : callback을 실행할 때 this로 사용되는 값. 제곱근 구하기 let nums = [4, 9, 16, 25]; let result = nums.map(Math.sqr.. 2021. 9. 6.
[JS] 프로그래머스 기능 개발, 그리고 map() https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 해결 방안 구상 1. 완결 되는 100을 선언한 다음 progresse를 각각 빼서 speed로 나눠 올림한다 (Math.ceil) 2. 구한 소요일을 비교하여 답을 구한다. 1번을 구하기위해 for 반복문을 2번 돌렸다. 첫 번째는 100 - progresses[i]를 구하기 위해. 두 번째로는 첫 번째 구한 값을 speeds[i]로 나누기 위해. 2번.. 2021. 9. 6.
[JS] 숫자 야구 게임 [2] 숫자 야구 게임 [1]에 정답이 되는 4개의 임의 숫자를 만들었다. 이 후 각 4개의 숫자를 입력하여 같은 자리에 같은 숫자가 오면 STRIKE, 정답에 들어있는 숫자는 같지만 위치가 다르면 BALL을 반환하는 함수를 구현해봤다. 정답을 question / 시도한 답을 test로 받고, 각 숫자의 위치를 비교하기 위해 문자와 숫자를 배열로 변환시켜 진행했다. test의 경우 숫자로 진행하면 0이 처음왔을때 생략되는 경우를 막기위해 문자로 변환시켰다. String으로 문자로 변환 후 spilt('')를 사용하여 각 숫자별로 문자열로 반환 이 후 반목문을 돌려 각 자리수끼리 비교하여 같은면 strike의 위치로 넣어주고 ballFiter에 strike된 숫자를 test에서 제외 시켜줄 수 있도록 filter.. 2021. 8. 31.
[JS] 임의의 숫자 생성하기 Math.random() 0 ~ 1 사이의 무작위 수를 생성해준다. ex) 0.XXXXXXXXXXXXXXXXXX Math.floor() 숫자를 정수로 변환시켜 준다. 이 두개를 사용하여 Math.floor(Math.random()*10) 을 하게되면 0~9 까지의 임의의 정수를 얻을 수 있다. ( parseInt(Math.random()*10)와 같다 ) [JS] parseFloat() & parseInt() parseFloat(value) : 문자열을 실수로 변경 매개 변수 value : 변환할 값 반환 값 주어진 값에서 부석한 부동소수점 수. 분석할 수 없으면 NaN 숫자로 변경될 수 없는 문자가 들어가있으면 NaN을 반환한다. hyoe-it.tistory.com 0 이상 N 이하인 값을 뽑아내고 싶.. 2021. 8. 30.
[JS] parseFloat() & parseInt() parseFloat(value) : 문자열을 실수로 변경 매개 변수 value : 변환할 값 반환 값 주어진 값에서 부석한 부동소수점 수. 분석할 수 없으면 NaN 숫자로 변경될 수 없는 문자가 들어가있으면 NaN을 반환한다. parseInt(string, radix): 문자열을 정수로 변경 매개 변수 string : 분석할 값. 문자열이 아니면 문자열로 변환(ToString 사용). radix : (선택) 2 ~ 36 진수 2021. 8. 30.
[JS] 프로그래머스 가장 큰수 (LEVEL2) 문제 https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 .. 2021. 8. 19.
[JS] substring() / substr() 비교 substring() / substr()은 문자열을 추출하는 메서드이다. 사용법이 비슷한 대신 두개의 차이가 헷갈려 정리해 보기로 했다. - str.substring(indexStart[, indexEnd]) - str.substr(start[, length]) 시작점은 같지만, 두번째 인자가 substring은 indexEnd / substr은 length로 차이가 있다. substring은 두번째 인자 값을 미포함, substr은 두번째 인자값을 포함한다. 음수만 입력 된 경우 substring은 기존 값 그대로 / substr은 뒤에서 시작하는 것을 확인 할 수 있다. start숫자만 입력 된 경우 두 수는 같은 값을 반환한다. 2021. 8. 17.
[JS] 로또의 최고 순위와 최저 순위 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다.. 2021. 8. 10.
[JS] 크레인 인형뽑기 게임 크레인 인형뽑기 게임 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게.. 2021. 8. 2.
[JS] 프로그래머스 숫자 문자열과 영단어 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 s.. 2021. 7. 28.
[JS] 프로그래머스 k번째 수 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a.. 2021. 7. 26.
[JS] D-day 만들기 D-day 만들기 function inIt() { const nowDate = new Date(); const dDay = new Date('2021-09-30 18:00'); const countDown = dDay - nowDate ; // 1000ms(1초) * 60(1분) * 60(1시간) * 24(1일) * 365(1년) const countDownday = Math.floor(countDown/(1000*60*60*24)); const countDownhour = Math.floor((countDown%(1000*60*60*24))/(1000*60*60)); const countDownMins = Math.floor((countDown%(1000*60*60))/(1000*60)); const .. 2021. 6. 9.
반응형