Front-end/알고리즘(82)
-
[프로그래머스] 짝지어 제거하기 (자바스크립트/javascript/js)
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12973?language=javascript 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제를 풀기 위한 아이디어 처음에는 그냥 반복문을 돌면서 index를 가지고 index와 index+1이 같은지 비교한 후 같다면 둘을 잘라내고 index는 처음부터(0부터) 다시 반복문을 돌렸었다. index와 index+1이 같지 않다면 index를 증가시키는 방법으로 풀었었다. 그러나 시간초과가..
2021.06.24 -
[프로그래머스] 오픈채팅방 (자바스크립트/js/javascript)
문제출처: https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제를 풀기 위한 아이디어 문제 설명은 장황하지만 결국 포인트는, 닉네임을 먼저 확정짓고 그 다음에 맞는 유저 아이디의 닉네임을 불러오기만 하면 된다. 모든 record를 반복문으로 돌며 계속해서 유저 아이디에 맞는 닉네임을 갱신해주어서 먼저 닉네임을 확정짓는다. 이 경우 Leave인 경우는 닉네임이 바뀌지 않으므로 신경쓸 필요가 없다. 또 recor..
2021.06.24 -
[프로그래머스] 124 나라의 숫자 (자바스크립트/javascript/js)
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12899?language=javascript# 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제를 풀기 위한 아이디어 124 나라에서는 1 →1, 2 → 2, 3 → 4 인 것을 생각하고 풀어야 한다. 주어진 수를 우선 3으로 나눈다. 이 때 3으로 나누어 떨어지는 수는 몫에서 -1을 하고 나머지를 3으로 두어야 한다. 그렇게 해서 나눈 몫과 나머지가 1,2,3이 될 때까지 재귀함수를 돌려서 문자열로 합쳐주면 된다. function solution(n) { const getOneTwoFourNumber = (number) => { let numberString = ""; ..
2021.06.24 -
[프로그래머스] 문자열 압축 (자바스크립트/ javascript/ js)
문제출처: https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제를 풀기 위한 아이디어 일단은 1개부터 총 문자열 길이의 절반까지 모두 잘라서 비교해본다. (이 때 문자열 길이의 절반까지로 하는 이유는 만약 문자열의 길이가 5개라면 2개까지는 잘라도 되지만 3개부터, 즉 과반수를 넘어가면 자르는게 의미가 없기 때문에 범위를 좁혀서 효율성을 더 높일 수 있다. 그러나 문자열의 길이가 1인 경우도 생각해야 ..
2021.06.23 -
[프로그래머스] 구명보트 (자바스크립트/ javascript/ js)
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제를 해결하기 위한 아이디어 이 문제는 무인도에 갇힌 사람을 나타내는 people 배열이 최대 5만명이기 때문에 효율적인 방법으로 코드를 작성해야 한다. 처음에는 알고리즘다운 생각을 제대로 하지 못해서 이중 for문으로 가능한 경우의 수를 모두 도는 방법을 생각했는데, 이 문제는 효율성 점수도 있기 때문에 그렇게 해서는 ..
2021.06.23 -
[프로그래머스] 타겟 넘버 (자바스크립트/javascript/js)
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 풀기 위한 아이디어 주어진 numbers의 숫자들을 더하거나 빼야하므로 예제를 그림으로 나타내면 다음과 같다. 예제에서는 숫자가 5개 였지만 depth를 5까지 그림으로 표현하기에는 너무 가독성이 떨어져서 4 depth까지만 표현했다. 이렇게 numbers라는 배열에 들은 각각의 값들은 +이..
2021.06.23