Programming 65

[알고리즘] 양옆앞뒤 큰 수 찾기

조건 5x5 2차원 배열이 주어질 때 어떤 원소가 상하좌우에 있는 원소보다 클 때 해당 위치에 * 을 표시하는 프로그램을 작성하세요. 경계선에 있는 수는 상하좌우 중 존재하는 원소만을 비교합니다. 조건 1: 결과는 하나의 문자열이며, 2차원 배열의 각 배열의 요소들에 해당하는 문자는 길이 1의 공백으로 구분된다. 조건2: 결과에서 배열간의 구분은 줄바꿈(개행문자)으로 한다. 조건3: 비교할 원소가 존재하지 않는 경우 0으로 간주한다. My Solution / Try 비교할 이중배열의 상하좌우 해당 인덱스 요소가 undefined라면 크기를 비교할 수 없음 push와 unshift를 활용해서 이중배열 테두리를 전부 0으로 채움 상하좌우를 비교해서 제일 큰 수에 * 재할당 function solution(a..

Programming 2023.06.26

[알고리즘] 프로그래머스 체육복

프로그래머스 문제 링크 My Solution / Try 학생수 길이의 배열을 만들고 전부 1로 채움 (Array,fill 활용) 잃어버린 학생의 배열의 요소는 0으로 재할당 여벌을 가지고 있는 학생의 배열의 요소는 +1 반복문을 돌며 잃어버린 학생(i)의 앞번호 학생(i-1)이 여벌을 가지고 있다면 해당 학생에게 빌려주고(arr[i] = 1) 앞번호 학생의 체육복 개수는 다시 1개로(arr[i-1] = 1) 앞번호 학생이 여벌을 가지고 있다면 arr[i] = 1 / arr[i+1] = 1 function solution(n, lost, reserve) { let arr = Array(n).fill(1); lost.map((e) => arr[e-1] = 0); reserve.map(e => arr[e-1]..

Programming 2023.06.26

[Git] Git Commit Message Conventions

Format 제목,본문,꼬리말로 나누고 각각은 빈줄로 구분 (): Type feat : (feature) 새로운 기능 추가 fix : (bug fix) 버그 수정 docs : (documentation) 문서 수정 design : 스타일링, css 수정 dir : 폴더 구조 구성, 변경 style : (formatting, missing semi colons, …) 코드 포맷팅, 세미콜론 누락, 코드 변경 x refactor : 리팩토링 test : (when adding missing tests) 테스트 코드 추가 chore : (maintain) 기타 수정 (빌드, 패키지 매니저) Subject 명령조 현재시제 사용 “changed” 나 “changes”가 아닌 “change”사용 첫 글자 대문자 x..

Programming 2023.06.26

[알고리즘] 프로그래머스 숫자 문자열과 영단어

프로그래머스 문제 링크 My Solution / Try 객체의 키/밸류를 활용 !isNan()을 활용해 숫자인지 아닌지 판별 function solution(s) { let obj = { 'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9', } let result = '' let str = '' for(let i = 0; i < s.length; i++){ if(!isNaN(s[i])){ result += s[i] continue; } else { str += s[i]; if(obj[str]){ result += obj[str]..

Programming 2023.06.26

[알고리즘] 프로그래머스 신규 아이디 추천

프로그래머스 문제 링크 My Solution / Try 지금까지 공부한 반복문, 조건문을 복습하기 위해 정규표현식을 사용하지 않은 풀이 (정규표현식을 이용한 풀이는 아래 Advanced Solution) 조건2(사용불가능한 특수문자를 전부 제거하기)와 조건3(2번 이상 연속된 마침표를 하나로 치환)이 특히 까다로웠음 '사용불가능한 특수문자 제거'는 filter와 includes를 사용, 문자열에 사용불가능한 특수문자의 요소가 존재하지 않는 것들만 필터링 '2번 이상 연속된 마침표 하나로 치환'은 반복문을 사용(stack의 개념 차용) 직전 인덱스와 비교해서 중복되지 않는 경우에만 추가 function solution(조건) { let 특수문자 = "-_.~!@#$%^&*()=+[{]}:?,/" let 가..

Programming 2023.06.26

[Javascript] ES6란 무엇인가(ES5와의 차이)

ECMAScript 6(ES6) ECMAScript 는 JavaScript 프로그래밍 언어가 사용하는 표준 2015년에 출시되었기 때문에 ECMAScript 2015로도 알려져 있음 (ES5는 2009년) ES5 와 ES6의 차이 변수 재선언, 재할당이 모두 가능해 문제를 야기하는 var에서 let과 const가 추가됨 객체 정의 키와 변수 이름이 같을 때 객체를 정의하는 쉬운 방법을 제공 var fullName = 'John Moore'; var age = 25; var gender = 'Male'; var city = 'London' // ES5 var student = { fullName: fullName, age: age, gender: gender, city: city }; // ES6 var ..

Programming 2023.06.26

[WIL] week1 회고

Keep 시간 철저하게 지키며 계획된 시간에 공부하기 1일 1시간 알고리즘 문제 풀이 React 선행학습 Problem 집중력이 오래가지 못하고 수면시간이 과함 계획한 타입스크립트 공부가 지체됨 휴일에 낮아지는 집중력 Try(우선순위) 그날 모르는 것 그날 완벽하게 이해하고 넘어가기 (고민하다 막히는 문제는 기술매니저님이나 스택오버플로우 활용) React, 타입스크립트 1시간 이상 공부하기 하루 한시간씩 꾸준히 운동하기 잠을 줄이고 휴일에 마음 다잡기 (시간표대로 움직이기) 첫주차를 마치며 강의와 과제 모두 이미 알고있는 개념들이 많다보니 집중력을 잃고 흐트러지는 시간이 많았다. 시간표대로 체계적으로 움직이자. Rough Schedule 7:00~8:00 운동 8:00~9:00 알고리즘 9:00~21:0..

Programming 2023.06.26