본문 바로가기

전체 글43

[프로그래머스] 전화번호 목록 안녕하세요. 이번 문제는 프로그래머스 2단계 - 전화번호 목록입니다. 프로그래머스에서 처음으로 풀어보는 2단계 문제였습니다. 확실히 1단계 문제와는 난이도가 올라간 것이 느껴졌습니다. 설상가상 JS는 지원하지 않는 문제라서.. Python으로 풀이하였습니다. 해당 문제의 경우, 아마도 비교적 최곤에 테스트케이스가 상세하게 추가되고 효율성 검사가 더 어려워졌다고 하더라구요. 그래서 그런지 다 풀고 난 이후에 더 좋은 풀이가 있다면 참고하고자 했으나, 문제 수정 이전에 올라간 정답들이라 효율성 테스트에서 탈락하거나 테스트케이스를 통과하지 못하는 것들이 있더라구요. 이 부분은 조금 아쉬웠습니다. 이번 문제는 얼핏 보면 중첩 for문을 사용해 쉽게 풀 수 있을 것 같습니다만.. 효율성 부분에서 O(n^2)는 통.. 2022. 8. 26.
[프로그래머스] 폰켓몬 안녕하세요. 이번 문제는 프로그래머스 1단계 - 폰켓몬 문제입니다. 이번 문제는 가장 처음 읽었을 땐 무슨 말인지 이해가 잘 되지 않아 헷갈렸지만, 제대로 읽어보니 정말 쉬운 문제여서 후루룩 풀었습니다. function solution(nums) { return Math.min(nums.length / 2, new Set(nums).size); } 인생은 폼생폼사이기 때문에 한줄로 짜보았습니다. Set이 아닌 Map을 사용하는 방법도 있습니다. function solution(nums) { return Math.min(nums.length / 2, new Map(nums.map((val) => [val])).size); } 이번 문제는 거의 다 답들이 비슷한 수준이어서 다른 풀이를 가져오지 않았습니다. .. 2022. 8. 24.
[프로그래머스] 완주하지 못한 선수 안녕하세요. 이번 문제는 Hash 개념을 사용해 풀이하는 문제입니다. 프로그래머스 1단계 - 완주하지 못한 선수 입니다. 이번 문제는 Hash를 사용해서 푸는것이 출제자의 의도에 부합하는 것 같습니다. 애초 계열이 Hash로 잡혀있기도 하구요. 저의 정답은 다음과 같습니다. function solution(participant, completion) { const data = new Map(); for (const part of participant) { if (data.has(part)) data.set(part, data.get(part) + 1); else data.set(part, 1); } for (const compl of completion) { if (data.get(compl) > 1) .. 2022. 8. 24.
[프로그래머스] 숫자 문자열과 영단어 안녕하세요. 이번 문제는 프로그래머스 1단계 - 숫자 문자열과 영단어 입니다. 2021 카카오 채용 연계형 인턴쉽에서 출제 되었던 문제라고 합니다. 이번 문제는 문제 자체를 이해하는 것은 쉽지만, 그만큼 여러가지 정답이 나올 수 있는 문제였던 것 같습니다. 저같은 경우는 순회가 가장 적은 방법으로 진행하려고 고민했고, 단순한 방식으로 풀이 했습니다. function solution(s) { const set = new Map([['zero','0'],['one','1'],['two','2'],['three','3'],['four','4'],['five','5'],['six','6'],['seven','7'],['eight','8'],['nine','9']]); let answer = ""; let sav.. 2022. 8. 23.
[프로그래머스] 부족한 금액 계산하기 안녕하세요. 이번 문제는 프로그래머스 1단계 - 부족한 금액 계산하기 입니다. 이번 문제는 크게 기술이 필요한 문제는 아니었습니다. 다만 그럼에도 불구하고 초안과 개선안이 있습니다. 아래가 초안입니다. function solution(price, money, count) { let resultPrice = 0; for (i=1; i money ? Math.abs(money - resultPrice) : 0; } 그 다음 개선안입니다. function solution(price, money, count) { let answer = money; for (i=1; i 0 ? 0 : -answer; } 셀프 피드백 이후, 다른 사람들의 정답도 보았습니다. 정말 멋진 정답들이 많았습니다. 가우스 공식을 이용한 정.. 2022. 8. 21.
[프로그래머스] 성격 유형 검사하기 안녕하세요. 이번 문제는 프러그래머스 1단계 - 성격 유형 검사하기 입니다. 이 문제는 2022 카카오 테크 인턴쉽 문제라고 하는데, 최신 문제라서 그런지 아직은 Best practice가 존재하지 않는 것 같습니다. 저같은 경우 이번 문제는.. 문제를 이해하는 것 자체가 오래 걸렸습니다. 오히려 푸는 건 금방 풀었던 것 같은데요. 이 부분이 아쉽습니다. 일단 정답 초안입니다. function solution(survey, choices) { const data = [ ["R", "T"], ["C", "F"], ["J", "M"], ["A", "N"] ]; const calc = { "R": 0, "T": 0, "C": 0, "F": 0, "J": 0, "M": 0, "A": 0, "N": 0 } for.. 2022. 8. 21.