programmers (6) 썸네일형 리스트형 [프로그래머스] Lv1. 숫자 문자열과 영단어 (javascript) 입력된 문자열로부터 원래 숫자 찾기 게임 규칙 숫자 영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 seven 8 eight 9 nine 제한사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다. 나의 풀이 주어진 숫자별 영단어 배열을 상수(numbers)로 저장 주어진 문자열(s)를 한자리씩 파싱(sn)하여 순환 sn이 숫자형이 아니면 tmpStr에 추가 numbers에서 tmpStr과 일치하는 배열 인덱스 찾기(findNum) findNum이 있으면 숫자형 결과(answer)에 추가 findNum에 없으면 .. [프로그래머스] Lv2. 카펫 (javascript) 노란 바탕에 갈색 테두리를 가진 카펫의 사이즈(격자수) 구하기 규칙 중앙에는 노란색으로 칠해져 있고, 테두리 1줄은 갈색으로 칠해져있는 격자모양 카펫 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 나의 풀이 노란색 카펫의 사이즈만 결정되면, 갈색사이즈는 쉽게 구할 수 있음 노란색 카펫의 격자수(x, y) -> 갈색 테두리 (x*2 + y*2 + 4; 여기서 4=모서리값) x(가로)를 1부터 하나씩 증가시키며 yellow/x (y;세로) 값과 비교 가로길이가 세로길이와 같거나 큰 경우, 예상되는 갈색테두리 사이즈(tmp)를 계산 .. [프로그래머스] Lv1. 최소직사각형 (javascript) 다양한 사이즈의 명함을 넣을 수 있는 최소 직사각형의 크기 구하기 제한사항 sizes의 길이는 1 이상 10,000 이하입니다. sizes의 원소는 [w, h] 형식입니다. w는 명함의 가로 길이를 나타냅니다. h는 명함의 세로 길이를 나타냅니다. w와 h는 1 이상 1,000 이하인 자연수입니다. 나의 풀이 각 명함의 사이즈(sizes)들 중 큰 값을 w, 작은 값을 h 로 각각 저장 w와 h의 최댓값을 구하여 곱함 function solution(sizes) { const {w, h} = sizes.reduce((a, b) => { b.sort((a, b) => +a > +b ? -1 : 0); a['w'].push(+b[0]); a['h'].push(+b[1]); return a; }, {w: [.. [프로그래머스] Lv2. 두 큐 합 같게 만들기 (javascript) 두개의 큐(queue1, queue2)합이 같아지기위한 이동횟수를 구하라 큐는 FIFO(first-in, first-out) 방식으로 처리 시간초과가 발생하여 해법 검색 후 수행 -> 투포인터 알고리즘 활용 조건 길이가 같은 두 개의 큐를 나타내는 정수배열 queue1, queue2가 매개변수로 주어짐 각 큐의 원소의 합을 같게 만들기 위해 필요한 작업의 최소횟수를 반환 단, 어떤 방법으로도 각 큐의 원소 합을 같게 만들 수 없는 경우 -1 반환 제한사항 1 ≤ queue1의 길이 = queue2의 길이 ≤ 300,000 1 ≤ queue1의 원소, queue2의 원소 ≤ 109 주의: 언어에 따라 합 계산 과정 중 산술 오버플로우 발생 가능성이 있으므로 long type 고려가 필요합니다. 나의 풀이 .. [프로그래머스]Lv1. 신규 아이디 추천 (javascript) 입력된 아이디로부터 규칙에 맞는 아이디 추천 규칙 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다. 7단계.. [프로그래머스]Lv1. 로또의 최고 순위와 최저 순위 (javascript) 6자리의 로또의 번호 중 일부를 알아볼 수 없을 때, 최고순위 최저순위 구하기 등수 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 제한사항 lottos는 길이 6인 정수 배열입니다. lottos의 모든 원소는 0 이상 45 이하인 정수입니다. 0은 알아볼 수 없는 숫자를 의미합니다. 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다. lottos의 원소들은 정렬되어 있지 않을 수도 있습니다. win_nums은 길이 6인 정수 배열입니다. win_nums의 모든 원소는 1 이상 45 이하인 정수입니다. win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다. win_nums의 원소들은.. 이전 1 다음