개발공부/알고리즘(17)
-
프로그래머스 올바른 괄호
'('가 나오면 1을더하고, ')'가나오면 1을 빼줘서 answer를 0으로 만들어준다. 어떤 경우에든 ')'가 먼저나오면 return false를 해야함을 고려한 나의 코드 function solution(s){ let answer = 0; s.split('').map((i, idx) => { if (answer == -1) { return false; } if (i == '(') { answer+=1; }; if (i==')') { answer-=1; } }) return answer == 0? true:false; } 다른 사람들의 코드를 보던 중 match를 이용한 사람의 코드 발견 function is_pair(s){ var result = s.match(/(\(|\))/g); return re..
2023.10.02 -
[JS] 프로그래머스 완주하지 못한 선수
비교적 쉬운 문제였지만 스코프의 이해가 부족해서인지 변수선언이나 리턴의 위치 문제로 자꾸 시간을 잡아먹었다. 오늘은 스코프를 다시 공부해봐야겠다. 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr participant(참가자)리스트 중 completion(완주자)리스트에 없는 사람의 이름을 반환하면 되는 문제이다. 처음엔 sorting을 하지않고 이중 for문을 사용했지만 sort를 먼저해서 하나하나 비교하며 답을 찾는 편이 더 효율적이라 판단했다. p와 c리스트 모두 동일한 순서의 배열로 ..
2021.07.30 -
[JS] 프로그래머스 K번째수
내사랑 ben&jerry's의 스티커가 사라져서 하루종일 넘넘 슬펐다.. 꾸역꾸역...... 알고리즘을 풀었다😭 이거만이라도 안풀고자면 더 슬플것같았다........................ 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 이상하다.. 콘솔로는 결과가 잘 나오는데 프로그래머스로 코드를 실행해보면 자꾸 arr을 찾을수없다고한다. 이것저것 시도해보다가 겨우 테스트에 통과하였는데 다른 사람들의 답을 보니 나의 코드는 너무 하찮은 코드였다🙄 function solution(array, commands) { return commands.map(command => {..
2021.07.30 -
[JS] Codility 코테 베타 문제 풀어보기
우아한 형제들의 코테를 보기전 Codility에서 제공하는 베타문제를 풀어보았다. 문제는 주어진 배열이 갖고있지않는 정수 중 가장 작은 숫자를 반환하는 프로그램을 짜야한다. 나는 sorting된 배열을 순서대로 돌면서 음수일땐 1을 반환하도록하였고, i번째 요소가 그 다음 요소와 같지않고 i번째 요소에 1을 더한 값과 그 다음 요소가 같지않고 i번째 요소는 양수라면(🙄) i번째 요소에 1을 더한값을 리턴하도록 하였다. 그리고 이 조건이 성립된다면 break를걸어 for문을 빠져나오도록 만들었다. 결과는 일단 배열 sorting방법부터 틀렸다😀 function solution(A) { // write your code in JavaScript (Node.js 8.9.4) arr = A.sort((a,b)=..
2021.07.16 -
[JS] 1,2차원 배열 탐색 문제
드디어 섹션2 1,2차원 배열 탐색 문제를 시작하였다. 매일 알고리즘 풀면좋겠지만 그게 생각처럼 잘 안된다😭 오늘 푸는 문제들을 정리해보려한다. 1. N(1 numbers[1] = 3, 9 > 3 이니까 9는 answer배열로 들어간다. 하지만.. function solution(numbers){ let answer = [numbers[0]]; // 7 3 9 5 6 12 for (let i=1; i numbers[i-1]) answer.push(numbers[i]); } return answer; }; let numbers = [7, 3, 9, 5, 6, 12]; console.log(solution(numbers)); i=1로 주고 numbers의 길이만큼 for문을 돌려준다. i가 2라면 numbe..
2021.07.14