
[Programmers Level 1] 소수찾기 Javascript
⚡문제정보 1부터 입력받은 숫자 n사이의 모든 소수의 개수를 반환하는 문제입니다. 처음엔 이중for문으로 구현했는데 그렇게 문제를 풀었더니 효율성 테스트에서 멸망했습니다. 🔍나의 첫번째 풀이 function solution(n) { let answer = 0 for(i=2 ; i
⚡문제정보 1부터 입력받은 숫자 n사이의 모든 소수의 개수를 반환하는 문제입니다. 처음엔 이중for문으로 구현했는데 그렇게 문제를 풀었더니 효율성 테스트에서 멸망했습니다. 🔍나의 첫번째 풀이 function solution(n) { let answer = 0 for(i=2 ; i
⚡문제정보 문자열이 주어지고 문자열은 공백을 기준으로 나뉘어집니다 짝수 인덱스는 대문자로 홀수 인덱스는 소문자로 바꿔야하는데 띄어쓰기를 기준으로 단어 인덱스를 초기화해서 생각합니다. 🙄접근방법 1. 띄어쓰기를 기준으로 단어 인덱스를 초기화해야하니 먼저 " "를 기준으로 split()을 해줘야한다고 생각했습니다. 2. 각 요소의 인덱스를 한번 더 밟아야하니 각 요소마다 for문을 돌려주면서 짝수 인덱스는 대문자로 홀수 인덱스는 소문자로 만들어줘야겠다고 판단했습니다. 한계 결론적으로 for문을 2번 사용하게 되기때문에 시간복잡도가 늘어나는 문제가 있습니다. 이걸 해결할 방법을 모르겠네요.. 🔍나의 풀이 function solution(s) { let strange = s.split(" ") let answe..
⚡문제정보 스택을 이용하면 쉽게 풀 수 있는 문제입니다. leetcode에서 비슷한 문제를 풀었는데 그것보다 조건이 좀 더 쉽네요! 🙄제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 🔍접근방법 stack을 구현하기 위해 값을 저장해줄 변수를 선언하고 for문을 순회하며 문자열이 '('인 경우 push ')' 인 경우 pop해준다. 🔍나의 풀이 function solution(s){ let stack = [] if(s[0] == ")") return false for(i=0 ; i
⚡문제정보 한명 빼고 모두 완주한 마라톤 경기에서 완주를 못한 찐따 한명을 찾는 문제입니다. 동명이인이 있다는 조건이 있으니 단순하게 filter()를 이용해서 푸는 방법은 제한이 있을 것 같아요 항상 한명빼고 완주를 못하니까 두 배열을 비교해서 completion 배열에는 없는 한명을 찾아내면 되는 문제라고 생각했습니다. 🙄제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 🔍접근방법 없는 한명을 찾으면서 동명이인 케이스를 제거하기 위해 객체를 선언해주고 completion배열을..
문제정보 원본 배열이 주어지고 2차원배열로 이루어진 commands도 주어지네요 i번째부터 j번째까지 자르고 정렬.. 엥..? 이거 완전 slice()하라는 소리 아니냐? 싶어서 slice()로 구현해봤습니다. 나의풀이 function solution(array, commands) { let answer = [] commands.forEach(ele => { let sorter = array.slice(ele[0]-1, ele[1]).sort((a,b) => a-b)[ele[2] -1]; answer.push(sorter) }) return answer } forEach로 slice해주고 문제를 풀었습니다. 근데 인덱스는 0부터 세지만 문제는 1부터 숫자를 세서 각각 -1을 해줘야 답이 제대로 반환되네요..
문제정보 내용 id,pw로 이루어진 각 요소가 길이 2인 2차원 배열이 주어집니다. 1. id,pw 모두 일치하는 경우 login 2. id만 일치하는 경우 wrong pw 3. id가 일치하는 회원이 없다면 fail 3가지 케이스에 대한 처리를 해주면 되는 문제입니다. 간단하게 해결할 수 있을 것 같네요 예시 나의풀이 function solution(id_pw, db) { let answer = 'fail' db.forEach(ele => { let id = ele.includes(id_pw[0]) if(id == true) { ele.includes(id_pw[1]) ? answer = "login" : answer = "wrong pw" } }) return answer } 저는 forEach와 삼..
⚡문제정보 소신발언 , 화나서 죽을 뻔 했습니다. 🙄제한사항 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정답은 1, 2, 3, 4, 5중 하나입니다. 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요. 🔍접근방법 1. 1,2,3 번 학생이 찍는 패턴을 답과 비교해준다. 2. 맞춘 갯수를 카운팅해준다. 3. 등수를 제한조건에 맞춰서 정렬한다. 아주 쉽게 해결할 수 있었을 것 같았습니다. 제출을 해보기전까지는.. 🔍나의 첫번째 풀이 function solution(answers) { let result = { "1" : 0, "2" : 0, "3" : 0 } let first = [1,2,3,4,5] let second = [2,1,2,3,2,4,2,5] ..
⚡문제정보 https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 너무 길어요... 가서 보세요.... 는 농담이고요 핵심만 보면 이렇습니다. 1. 정수 배열 두개가 주어집니다. 2. 순서상관없이 당첨번호가 내 로또배열에 존재하면 맞춘겁니다. 3. 내 로또번호에는 0도 등장하는데 0은 알아볼수 없기때문에 1등일수도 아닐수도있습니다. 4. 0을 고려해서 내 당첨 가능한 최고순위와 최저 순위를 배열에 담아 리턴합니다. 🙄제한사항 lottos는 길이..