분류 전체보기 (34) 썸네일형 리스트형 [해커랭크] Day 7: Regular Expressions Ⅱ (javascript) 접두어 정규식 조건 문자열 s 에서 시작하는 접두어는 아래와 같음 Mr., Mrs., Ms., Dr., Er. 문자열 에서 접두어를 제외한 문자열은 반드시 하나 이상의 대소문자 알파벳 제한사항 s ≥ 3 나의 풀이 정규식을 사용한 경험이 적어 많이 해맨 과제 반복하다보니 점점 패턴의 의미를 이해하게 되긴하는 듯 사용한 정규식 : /(Mr|Mrs|Ms|Dr|Er)\..\w*$/g () : 그룹 | : 구분자 (or) \. : 문자열 . . : 개행/종결문을 제외한 모든 문자열 (한자리) \w: 알파벳 문자열 ( [a-zA-Z]) $: 끝나는 문자열 // 생략 function regexVar() { /* * Declare a RegExp object variable named 're' * It must ma.. [해커랭크] Day 6: Bitwise Operators (javascript) 비트연산자 & 를 이용하여 주어진 값보다 작은 최대 값 구하기 조건 1부터 n까지의 정수를 가지는 시퀀스 S 정의 S에서 임의의 두 정수 a, b의 비트값이 k 보다 작은 최대 비트값 얻기(단, a < b) 제한사항 1 ≤ q ≤ 10³ 2 ≤ n ≤ 10³ 2 ≤ k ≤ n 나의 풀이 최종적으로 전달할 max 값을 기본 0으로 지정 이중 for 문을 이용하여 시퀀스를 순환하여 비트연산 수행 a < b 이므로 a에 담기는 범위는 1 ~ (n-1) b에 담기는 범위는 a+1 ~ n a & b 를 이용하여 비트연산자 수행 수행된 결과와 숫자값인 k 값을 비교 Number(a&b) < k a&b < k 인 값 중 최댓값을 담아 리턴 Math.max() 를 사용했으나, if 문을통해서도 구현 가능 if 문이 훨.. [해커랭크] Day 5: Template Literals (javascript) 태그함수를 이용하여 이차 방정식 풀기 *tagged template literal function ex) function sides(literals, ...expressions) { } sides`The area is: ${val1}.\nThe perimeter is: ${val2}.` -> literals: ['The area is:', '\nThe perimeter is:', '.'] -> expressions: [val1, val2] 조건 주어진 area, perimeter 값으로부터 다음 방정식을 이용하여 s1, s2를 풀 것 s1, s2를 오름차순의 배열로 만들어 전달 제한사항 1 ≤ s1, s2 ≤ 100 나의 풀이 expressions 로 전달받은 인자를 각각 A, P 로 할당 제공된 이차방.. [해커랭크] Day 8: Buttons Container (javascript) 3X3의 숫자판에서 가운데 버튼 클릭 시 시계방향으로 숫자판 회전시키기 - html, css, script 작성하기 조건 초기 레이아웃 버튼 5를 한번 클릭했을 경우 버튼 5를 한번 더 클릭했을 경우 제한사항 지정된 ID, css 부여할 것 클릭 때 마다 시계방향으로 돌 것. 나의 풀이 더 쉽게 처리하는 방법이 있을 것 같은데, 일단 직역적으로 처리 그림 4. 처럼 3x3의 행렬(2중배열)을 단일 배열로 치환하여 계산 이중배열을 단일배열로 처리 후 계산하는 방법 col = index%len row = Math.abs( Math.floor((index-1)/len)) index = col + row*(col_len); 3x3 그리드에서 가운데 좌표 (1,1)을 중심으로 시계방향으로 돌릴 경우, 각각의 위치.. [해커랭크] Day 7: Regular Expressions Ⅰ(javascript) 모음 정규식 조건 모음 : a, e, i, o u 문자열의 첫자리와 끝자리가 같은 유형의 모음인지 확인 제한사항 3 ≤ s 문자열 s는 소문자로 구성됨 나의 풀이 각 모음별 정규식 제어 (?=^${vowel}).*.(?=${vowel}$) () : 그룹 ?= : 경우에만 일치 (해당 과제에선 불필요한 것으로 보임) ^: 첫 문자열 . : 줄넘김 등 종결자를 제외한 모든 문자 $: 끝 문자열 더 간결하게 처리할 수 있을 것으로 보임. // 생략 function regexVar() { /* * Declare a RegExp object variable named 're' * It must match a string that starts and ends with the same vowel (i.e., {a, .. [해커랭크] Day 5: Inheritance (javascript) 제공되는 Rectangle class로부터 area 메소드를 추가하고, Rectangle class를 상속받는 Square class 만들기 조건 및 제한사항 Rectangle의 prototype에 area 메소드 추가 아래 조건을 만족하는 Square class 생성 Rectangle의 하위클래스 생성자(constructor)만 포함하고 다른 메서드는 불포함 Rectangle 클래스의 area 메소드를 사용하여 Square의 area를 출력 나의 풀이 Rectangle.prototype.area = function() {} 을 이용하여 prototype 메소드 추가 Arrow Function을 사용하지 않은 이유는 메소드로 사용할 수 없기 때문 참고: (https://developer.mozilla... [해커랭크] Day3: Arrays (javascript) 숫자배열 중 두번째로 큰 수 추출하기 조건 getSecondLargest 함수를 수정하여 두번째로 큰 수를 전달하라. parameters int nums[n]: 정수 배열 Returns int: nums 에서 두번째로 큰 수 제한사항 1 ≤ n ≤ 10 0 ≤ nums[i] ≤ 100, i는 index nums의 숫자는 중복일 수 있음. 나의 풀이 nums 배열에서 가장 큰 수를 추출 (max) nums 배열을 순회하며 max 가 아닌 값 중 가장 큰 수를 추출 reduce 함수를 이용하여 바로바로 값을 비교처리함 // 생략... /** * Return the second largest number in the array. * @param {Number[]} nums - An array of number.. [프로그래머스]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단계.. 이전 1 2 3 4 5 다음 목록 더보기