programmers

programmers

[Programmers Level 1] 신고 결과 받기 Javascript

⚡문제정보 문제 길이는 엄청나게 길지만 조건은 요약하면 간단합니다. 1. 개개인은 아무나 여러번 신고할 수 있지만 한명이 특정인물을 중복신고하는 건 한번으로 카운트 2. k번 이상 신고당하는 경우엔 정지먹는다. 3. k번 이상 신고당해서 정지당한 사람을 신고한 사람의 카운트를 올려준다. 4.반환은 id_list의 순서대로 각 유저가 받은 정지성공 메일의 카운트를 담아 배열형태로 반환한다. 🔍접근방법 반환을 용이하게 하려면 입력 순서를 보장해주는 Map 자료 구조를 사용하는 것이 유리하다 생각했습니다. Set을 통해 report의 중복을 없애준 뒤 Set을 순회하면서 신고 횟수를 카운트해주고 다시 for문을 돌려서 정지당한 케이스를 신고한 사람에게 1을 더해줬습니다. 🔍나의 풀이 function solut..

programmers

[Programmers Level 1] 숫자 짝꿍 Javascript

⚡문제정보 두 수의 교집합을 찾아내고 -> 교집합으로 만들 수 있는 가장 큰수의 조합을 만든다. 목적 자체는 심플한데 구현하는게 살짝 아쉬웠습니다. 뭔가 더 효율적인 방법이 있을것도 같은데... 싶은? 숫자가 중복으로 주어질수도 있기 때문에 이를 처리하기 위해서 저는 Map 자료구조를 이용해서 각 숫자가 몇번 등장했는지를 체크해주는 식으로 문제를 풀었습니다. 🔍접근방법 1. X, Y 두수의 0부터 9까지의 등장횟수를 각각 카운트해서 Map에 저장해준다. 2. 등장횟수가 낮은 것을 기준으로 숫자를 모은다. 3. 내림차순으로 정렬하면 가장 큰 수가 될테니 모은 숫자를 정렬해준다. 🔍나의 풀이 function solution(X, Y) { function objmaker(string) { let result ..

programmers

[Programmers Level 0] OX 퀴즈 Javascript

⚡문제정보 식이 주어지고 식이 성립하면 O 틀리다면 X를 반환하는 문제입니다. 음수를 표시하는 마이너스기호는 공백이 주어지지 않는다고하니 if처리가 손쉬워지겠네요 🔍나의 풀이 function solution(quiz) { var answer = []; quiz.forEach(ele => { let oxmaker = ele.split(' ') let result = Number(oxmaker[0]) for(i=1 ; i { let oxmaker = ele.split(' ') //quiz의 각 요소는 문자열이므로 split()해줌 let result = Number(oxmaker[0]) // 식을 계산하고 답을 저장할 result배열 선언 for(i=1 ; i { const [calc, result] = t..

programmers

[Programmers Level 1] 푸드파이트 대회 Javascript

⚡문제정보 🔍접근방법 주어진 음식이 홀수인 경우에는 음식을 한개 버려야한다. 모든 참가자는 같은 칼로리의 음식을 같은 양으로 먹기 때문에 0을 기준으로 앞을 뒤집으면 뒤가 된다. 그렇기때문에 앞의 값만 다 구하면 뒤는 앞을 뒤집어주기만 하면 구현될것이다. 🔍나의 풀이 function solution(food) { let result = [] for(i=1; i

programmers

[Programmers Level 1] 명예의 전당 Javascript

⚡문제정보 명예의 전당에서 꼴찌인 사람의 점수를 리턴하면 되는 문제입니다. 명예의 전당은 k명만큼 들어갈 수 있고 점수가 낮은 사람은 명예의 전당에서 밀려나는 구조로 되어있네요 🔍접근방법 항상 명예의 전당의 순위를 최신화해서 k등인 사람의 점수를 찾아야한다고 생각했습니다. 또한 그날그날 새로운 사람이 들어오니까 새로운 사람이 들어온것을 기준으로 최신화해야하니 스택구조로 문제를 풀었습니다. 아쉬운 점은 순위를 최신화하는 과정에서 매번 sort()를 사용해야하다보니 효율이 안좋아지는 문제가 있었습니다. sort()를 사용하지않고도 문제를 풀 방법을 고려해봐야할 것 같네요 🔍나의 풀이 function solution(k, score) { let answer = [] let stack = [] for(i = 0..

programmers

[Programmers Level 0] 등수 매기기 Javascript

⚡문제정보 살짝 막혔었던 문제였는데 오늘 다시보니까 풀렸어요 평균점수를 구하고 -> 등수를 구해야하는 문제인데 동점인 경우의 처리에 유의해줘야합니다. 🔍접근방법 각 요소를 평균값으로 변환해주고 비교해야한다. 등수를 매기기 위한 정답 배열을 만들어주어야한다. 순위를 정해주기 위해 [i]를 기준으로 나머지 요소들과의 대소관계를 카운트해준다. 한계 for문을 2중으로 사용함.. 🔍나의 풀이 function solution(score) { let answer = Array.from(score, () => 1) for(i=0 ; i 1) //score의 길이와 같은 배열을 만들고 값을 1로 채워줍니다. for(i=0 ; i

programmers

[Programmers Level 0] 분수의 덧셈 Javascript

⚡문제정보 분수의 덧셈 문제입니다. 수학에 약하다보니 통분을 해야한다는건 알겠는데.. 코딩을 어케해야하지.. 하면서 분수에 대해 찾아보다보니 가장 쉽게 통분을 하는 방법은 분모와 분모를 서로 곱해주는것이었습니다 서로를 곱해주면.. 같은 값이 될 수 밖에 없겠죠 크으 역시 사람들 똑똑하다 통분 해준 다음 기약분수로 만들어야하는데 기약분수로 만들어주려면 분자와 분모의 최소공배수로 나눠주면 해결 🙄제한사항 0 { if (b === 0) return a return gcd(b, a % b) } let least = gcd(wholemeal[0],wholemeal[1]) let answer = [wholemeal[0] / least , wholemeal[1]/least] return answer } 코드 설명은 ..

programmers

[Programmers Level 1] 두개 뽑아서 더하기 Javascript

⚡문제정보 for문을 이중으로 쓰면 쉽게 풀 수 있는 문제입니다 시간복잡도를 더 낮출 수 있을지가 고민되네요 🙄제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 🔍접근방법 서로 다른 인덱스끼리 전부 더해준다음 set으로 중복을 없애준다. 🔍나의 풀이 function solution(numbers) { let answer = [] for(i=0; i

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