문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 2차원 배열 문제이며 행열의 회전 중 특정 행열의 범위만 회전하는 문제였다. 나는 실제 행렬을 회전하며 최소값을 찾는 과정을 구현했다. 내가 작성한 코드보다 더 깔끔해 보이는 코드를 발견해서 내 코드밑에 작성해 두겠다. 완성된 코드 const solution = (rows, columns, queries) => { let answer = []; let quer..
분류 전체보기
5.1 값 값은 식(표현식)이 평가되어 생성된 결과를 말한다. 평가란 식을 해성해서 값을 생성하거나 참조하는 것 // 10 + 20 은 평가되어 숫자 값 30을 생성한다. 10 + 20 // 30 모든 값은 데이터 타입을 가지며, 메모리에 2진수(비트)의 나열로 저장된다. 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 이다. 변수에 할당되는 것은 값이다. // 변수에는 10 + 20 이 평가되어 생성된 숫자 값 30이 할당된다. var sum = 10 + 20; 10 + 20 은 할당 이전에 평가되어 값을 생성해야 한다. 5.2 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 ..
4.1 변수란 무엇인가? 왜 필요한가? 10 + 20 위의 코드를 자바스크립트 엔진이 계산하려면 먼저 10, 20, + 라는 기호(리터럴과 연산자)의 의미를 알고 있어야 하며, 10 + 20 이라는 표현식의 의미도 해석(파싱)할 수 있어야 한다. 자바스크립트가 위의 식을 해석하는 순서는 + 연산을 수행하기 위해 + 연산자의 좌변과 우변의 숫자 값, 즉 피연산자를 기억한다. 컴퓨터는 cpu를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체다. 메모리 셀 하나의 크기는 1바이트(8비트)이며, 컴퓨터는 메모리 셀의 크기(1바이트 단위)로 데이터를 저장하거나 읽어 들이다. 각 셀은 고유의 메모리 주소를 갖는다. 이 메모리 주소는 0부터 시작해 메모리의 ..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 단순 구현 문제로 앞의 k 개 만큼은 명예의 전단 배열에 넣어도 되지만, 그 이후의 점수는 명예의 전당에 이미 들어가 있는 점수들과 비교한 뒤 score[i]의 점수 보다 작아지기 시작하는 점수를 찾아내 뒤로 밀어내야한다. 이때 findIndex 메서드를 이용해 위치를 찾는데 만약 -1을 반환해 조건에 맞는 점수가 없으면 다음으로 넘어간다. 완성된 코드 const so..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 모 부트캠프 코테를 보며 기억에 남은 문제중 한개이다. 하노이의 탑 문제는 기본적으로 재귀 함수를 사용해 풀어야 하는 문제이며, 나는 이걸 이해하기 힘들었다. 문제에서 중요한 것은 제일 큰 원판을 제외한 나머지 원판들은 목적지가 아닌 경유지에 모두 있어야 하고, 제일 큰 원판을 옮긴 뒤 나머지 원판들도 경유지를 거쳐 목적지로 옮겨야 한다는 것이다. 이 때, 재..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/136797 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제를 처음 봤을 때는 BFS를 이용한 최단 기간 로직을 이용해 답을 구하는 줄 알았다. 하지만 경우의 수가 양손으로 먼저 나눠 2, number의 길이가 10만이기에 2^100000의 경우의 수가 나오기 때문에 BFS로는 시간 초과가 발생할거 같다. 그래서 이전 계산 결과를 이용하는 DP 알고리즘을 이용하기로 했다. dp[i][j]에서 i는 왼손, j는 오른손의 ..