'항해 중/2주차 알고리즘(프로그래머스)' 카테고리의 글 목록
본문 바로가기

항해 중/2주차 알고리즘(프로그래머스)44

알고리즘 기초 주차 - 3번 문제 풀이 방법 문제설명 배열 arr와 정수 n이 주어집니다. 배열 arr의 각 원소는 문자열로 이루어져 있습니다. 이때, 배열 arr에서 중복되는 단어는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 단어들을 반환 할 때는 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 제한사항 - strings는 길이 1 이상, 50 이상인 배열입니다. - strings의 원소는 소문자 알파벳으로 이루어져 있습니다. - strings의 원소는 1 이상, 100 이하인 문자열입니다. - 모든 strings의 원소의 길이는 n보다 큽니다. - 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치 합니다. 입출력 예 지정 입력값 문제풀이 function solution.. 2021. 11. 13.
알고리즘 기초 주차 - 2번 문제 풀이방법 문제설명 : 자연수 n의 각 자리 숫자를 뒤집은 순서로 더해 출력하는 수식을 리턴 하세요. 예를 들어 n이 12345이면 "5+4+3+2+1=15"라는 문자열을 리턴합니다. 제한사항 - N의 범위 : 100,000,000 이하의 자연수 입출력 예 지정 입력값 문제풀이 - 첫번째 문제 풀이 function solution(n){ let array = [] let total = 0 let result = '' // n을 뒤집는다 array = n.toString().split("").reverse() // 각 자릿수를 더한 합계를 구한다. for(let i = 0; i{ total += parseInt(item); (i==(array.length-1))?result+=item:result+=(item+"+".. 2021. 11. 13.
알고리즘 기초 주차 - 1번 문제 풀이 방법 문제설명 행렬이 두개 있습니다. 두 행렬의 절댓값을 차례대로 담은 정수 배열 absolutes와 행렬의 부호를 차례대로 담은 boolean 배열 sings가 매개변수로 주어집니다. 두 행렬의 부호는 같습니다. 실제 행렬 덧셈의 결과를 반환하는 함수, solution을 완성 해주세요. 제한사항 - 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예 지정 입력값 문제 풀이 function solution(arr1, arr2, signs){ let line = [] // 행을 담을 배열 for(let i = 0; i < arr1.length; i++){ // 행 반복문 let heat = [] // 열을 담을 배열 for(let j = 0; j < arr1[i].length; j+.. 2021. 11. 13.
5일차 → 신규 아이디 추천(정규표현식, replace(), slice(), charAt(), repeat()) 문제설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이디.. 2021. 11. 12.
5일차 → 소수 만들기(소수 판별식) 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 한다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때 nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하세요. 제한사항 - nums에 들어있는 숫자의 개수는 3 이상, 50개 이하입니다. - nums의 각 원소는 1 이상, 1,000 이하의 자연수이며, 중복된 숫자는 들어있지 않습니다. 문제 해석 문제를 봤을 때 고려해야 하는 부분은 2가지였다. 1) (서로 다른 수) 세 개를 구한다. 2) 더해서 새로운 배열에 담는다. 3) 소수가 되는 경우의 수를 구한다. (소수가 되지 않는 숫자의 개수를 구했다.) - 1보다 작거나 같으면 안된다. - 2부터 N-1까지 .. 2021. 11. 12.
4일차 → 문자열 내 마음대로 정렬하기(return 1/-1/0, localCompare()) 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한사항 - strings는 길이 1 이상, 50 이하인 배열입니디ㅏ. - strings의 원소는 소문자 알파벳으로 이루어져 있습니다. - strings의 원소는 길이 1 이상, 100이하인 문자열입니다. - 모든 strings의 원소의 길이는 n보다 큽니다. - 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 다른 사람이 푼 문제 풀이 functio.. 2021. 11. 11.
4일차 → 모의고사(filter(), Math.max()) 문제설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성.. 2021. 11. 11.
4일차 → 최소 직사각형(forEach([값, 값]), map([값, 값])) 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x 50)입니다. 모든 명함의 가로 길이와 세로 길이를 나.. 2021. 11. 11.
4일차 → 문자열 내림차순으로 배치하기(split(), sort(), reverse(), join()) 문제설명 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수 s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한사항 - str은 길이 1 이상인 문자열입니다. 내가 푼 문제 풀이 function solution(s) { let answer = ''; // 1. 문자열을 배열로 만든다. // console.log(s.split("")) // 2. 오름차순으로 정렬한다. // console.log(s.split("").sort()) // 3. 배열을 뒤집어서 내림차순으로 만든다. // console.log(s.split("").sort().reverse()) // 4. 배열을 문자열로 변환한다. // console.log(s.spl.. 2021. 11. 11.
728x90