programmers

programmers

[Programmers Level 1] 개인정보 수집 유효기간 Javascript

⚡문제정보 아주아주 긴 문제이지만 조건은 나름 간단합니다. 오늘날짜와 약관의 타입과 유효기간이 담긴 배열 , 약관이 지났는지 안지났는지 확인해야하는 배열 세개가 주어지고 이중 오늘을 기준으로 약관이 지난 케이스들의 index +1 값을 담아서 반환하면 되는 문제입니다. 구조분해할당을 써보기 좋은 문제 같네요 🔍나의 풀이 function solution(today, terms, privacies) { let map = new Map() let answer = [] today = today.split(".") terms.forEach(ele => { let [type , term] = ele.split(" ") map.set(type,+term) }) privacies.forEach( (ele,i) => {..

programmers

[Programmers Level 2] 주차 요금 계산 Javascript

⚡문제정보 진짜 무서운 점 저게 문제 다 가져온것도아님 문제가 너무너무너무너무너무너무 길고 조건도 세세하지만 귀찮을 뿐.. 어렵지는 않은 조건입니다. 주의할 조건들만 아래에 간략히 적겠습니다. 🙄제한사항 1. 주차요금 계산할때 시간이 딱 안떨어지면 올림해서 계산하세요 2. 입차한 데이터는 있는데 출차한 데이터가 없다면 23:59에 나간걸로 취급하세요 3. 기본시간,요금,단위시간,단위요금은 달라집니다. 4. 답은 차량번호를 오름차순으로 만들어서 그 순서로 반환하세요 5. 같은 차량이 여러번 들어왔다 나갈 수 있습니다. 주의해야할 조건들은 이정도인 것 같습니다. 굉장히...세세하네요 🔍접근방법 Map을 때려넣는다. 🔍나의 풀이 function solution(fees, records) { let map = ..

programmers

[Programmers Level 2] 할인 행사 Javascript

⚡문제정보 문제를 요약하면 다음과 같습니다 10일동안 하루에 한물품씩 살건데 할인하는 품목과 내가 사고싶은 품목 10개가 정확히 일치하는 타이밍이 몇번있는지를 알고 싶다. discount의 길이가 100,000까지 나올수 있으니까 숫자가 커졌을때를 고려하면 좋겠고 10개가 정확히 일치해야하니까 want 품목에 없는 물건이 나오면 바로 그날짜의 탐색을 중지하는것도 좋겠네요 🔍나의 풀이 function solution(want, number, discount) { let set = new Set(want) let map = new Map() let answer = 0 for(i=0 ; i

programmers

[Programmers Level 2] 괄호 회전하기 Javascript

⚡문제정보 스택의 대표적인 문제 중 하나인 괄호 문자열 문제에 조건을 살짝 더 추가한 문제라고 할 수 있을 것 같습니다. 회전시키면 되는 문제인데 s의 길이만큼 다 회전을 시켜봐서 올바른 괄호가 되는 케이스의 숫자를 리턴하면 되는 문제입니다. 괄호를 구현하는건 쉬우니까 문자열을 회전시키는것만 유의하면 되겠네요 저는 회전 시킬 때 문자열의 substring 메서드를 이용했습니다. 🔍접근방법 substr을 이용해 문자열을 회전시켜준다. 회전된 문자열들이 올바른 괄호인지 스택으로 확인해본다. 🔍나의 풀이 function solution(s) { let answer = 0 for(i=0 ; i

programmers

[Programmers Level 3] 베스트 앨범 Javascript

⚡문제정보 처음으로 제 힘으로 푼 3레벨 문제입니다만.. 정답률이 50%나 되는 3레벨 중엔 쉬운 문제네용.. 물론 저는 쉽게 못 풀었습니다. 문제를 풀면서 주의할 점은 다음과 같습니다. 🙄주의사항 1. 각 장르별로 가장 많이 플레이 된 곡을 2개씩 뽑아와야합니다. ** 이때 장르에 곡이 한개밖에 없는 경우도 존재합니다. 2. 각 장르에 속한 곡의 모든 플레이 수를 합산하여 가장 플레이수가 많은 순서대로 나열해야합니다. ** 단일 곡의 플레이수를 기준으로 정렬해선 안됩니다. 3.고유번호는 배열 인덱스입니다. 4. 합산플레이가 많은 장르 순서대로 곡을 나열해야합니다. ** 각 장르별 가장 플레이수가 많은 곡을 찾기위한 정렬(1)과 합산플레이가 많은 장르 순서대로 나열하기 위한 정렬(2) 즉 정렬이 두번 필..

programmers

[Programmers Level 2] H-index Javascript

⚡문제정보 예를 들어서 논문 5편중 3번이상 인용된 논문이 3편이상이고 나머지 논문이 3번 이하로 인용되었다면 3이 H-index입니다. 설명하기 되게 애매하네요.. 하여튼 구현 자체는 쉬울 것 같았습니다. 🔍나의 풀이 function solution(citations) { for( i = Math.max(...citations) ; -2 ele > i).length if(answer >= i) return answer } return } citations에서 가장 큰 값을 i로 넣어주고 i가 -2보다 작을때까지 i를 계속 빼줍니다. 그리고 i보다 큰 요소들만 담아서 길이를 재주고 answer와 i의 길이가 같거나 ..

programmers

[Programmers Level 1] 문자열 나누기 Javascript

⚡문제정보 문제를 대충 읽으면 착각하고 구현하기 쉬운 문제였습니다. 예제를 보는 편이 오히려 조금 더 직관적이지 않나 싶네요 x가 등장한 횟수와 x가 아닌 글자가 등장한 횟수가 일치하게 되었을때 정답카운터를 1 올려주면 됩니다. 🙄제한사항 s는 영어 소문자로만 이루어져 있습니다. 🔍접근방법 값을 저장할 변수가... 많이 필요할 것 같다. 1. 정답을 카운팅해줄 변수 2. 기준이 되는 x가 무엇인지 저장할 변수 3. x가 등장한 횟수를 세어줄 변수 4. x외의 나머지가 등장한 횟수를 세어줄 변수 변수만 선언하면 구현 자체는 for문으로 순회하면서 찾으면 쉽게 찾을 수 있을 듯 하다. 🔍나의 풀이 function solution(s) { let x = s[0] let xcounter = 1 let anoth..

programmers

[Programmers Level 2] 짝지어 제거하기 Javascript

⚡문제정보 같은 글자가 연속으로 들어오면 삭제해주고 모두 제거할 수 있으면 1을 아니면 0을 반환하는 문제입니다. 엥.. 레벨1 짜리 인형뽑기 문제가 더 어려운거같은데요 🔍접근방법 스택을 쓴다. 🔍나의 풀이 function solution(s){ if (s.length % 2 !== 0) return 0; let stack = [s[0]]; for (let i = 1; i < s.length; i++){ stack.push(s[i]); if (stack[stack.length-2] === stack[stack.length-1]){ stack.pop() stack.pop() } } return !stack.length ? 1 : 0; } 설명은 아래에 서술합니다. function solution(s){ l..

냠냠맨
'programmers' 카테고리의 글 목록 (2 Page)