문제https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이처음에는 DFS로 풀어볼까 라고 생각했지만 시간초과 에러가 예상되어 정렬 알고리즘을 생각해봤다. sort 메서드를 사용할 때 a b 두 변수는 문자열이며 두 문자열을 앞뒤로 서로 더했을 때, 크기를 기준으로 정렬했다. 마지막에 값을 반환할 때는 0으로 시작하는 모든 문자들을 0으로 대체했는데, 이는 numbers로 입력된 배열의 요소들이 모두 수학적으로 0일때의 예상 결과는 0이 되기 때문에..
문자열
문제https://www.acmicpc.net/problem/1972 풀이이 문제는 주어진 각 문자열을 순회하며 현위치의 문자와 정해진 거리만큼 떨어져있는 문자를 합친 문자열의 중복 확인한 문제이다. 중복 확인은 Set 객체를 이용했으며, Set 객체 사용 연습을 위해 사용했다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number))const [n] = input.shift();let map = input.slice();let an..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=javascript# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 해당 문제는 해시를 이용한 풀이가 정론이다. 각 문자별 해시테이블을 만들어준 뒤 phone_book의 요소들을 순회하며 문자를 slice 해가며 해시테이블에 존재하는지 확인한다. 이게 정론이지만 해당 문제는 sort 정렬을 이용해 쉽게 해결이 가능하다. sort()를 이용하면 가장 첫자리 부터 끝자리 까지의 수와 전체 크기를 비교해 ..
Javascript의 타입은 크게 두 가지로 분류된다. 바로 원시 타입과 객체 타입으로 구분할 수 있다. 이렇게 두가지로 분류한느 이유는 무엇일까? 원시 타입은 변경 불가능한 값이다. 하지만 객체 타입의 값은 변경 가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. 객체를 변수에 할당하면 변수에는 참조 값이 저장된다. 변수에 원시값을 갖는 변수를 할당하면 원시 값이 복사되어 전달된다 ➡ 값에 의한 전달 변수에 객체를 가르키는 변수를 할당하면 참조 값이 복사되어 전달된다 ➡ 참조에 의한 전달 1. 원시 값 원시 타입의 값은 변경 불가능한 값이다. (한번 생성된 원시 값은 읽기 전용 값으로 변경할 수 없다) 하지만 우리는 변수의 원시 값을 재할당을 통해 변경이 가능한데 변경 불가능하다는..
2024-10-01 수정문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 방법 구현 문제이며, 입력으로 주어지는 각 차량의 출입 기록을 split 메서드를 이용해 잘 분리하면 데이터의 정리는 끝났다고 볼 수 있다. 이 문제에서 가장 중요한 로직은 시간 계산 로직이다. 이 문제에서는 분 단위로 계산하기 때문에 24간을 나타내는 1440분에서 1분 뺀 1439분을 잘 이용해야 한다. 1439 - (각 차량의 출입에서의 시간)을 이용해..
문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 문제 풀이 방법 이 문제를 처음 봤을 때는 단순하게 isNaN()을 통해 풀려 했지만 에러가 났다. 문제점은 지수라는 존재를 간과하고 있었다. 지수를 고려해서 풀때는 문자열에 e 가 포함되어있다면 false를 반환해주는 조건을 만들면 되었다. 내가 작성한 코드 const solution = (s) => { if((s.length === 4 || s.length..