목록알고리즘/프로그래머스 (183)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 첫번째 번호가 동일하게 반복되는 규칙이있다. N이 주어졌을때 N-1만큼 첫번째 번호는 순서대로 동일한 값을 갖는다. N-1이 주어졌을때 N-2만큼 첫번째 번호는 순서대로 동일한 값을 갖는다. 만약 N이 3일때 2만큼 첫번째 번호가 반복된다. 1, ... 1, ... 2, ... 2..
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 주어진 wires는 트리의 형태이다. 순환이 없고 N개의 노드가 있다면 N-1개의 간선으로 모두가 연결된 상태이다. 즉. wires를 통해 모두가 연결된 상태이며 wires[i]번째의 간선을 끊으면 두개의 트리로 쪼개진단 말이다. 내가 생각한 풀이는 위의 원리를 이용해 wries[i]번째의 간선이 끊어진 상태라고 생각하고 모든 노드에대해 DFS를 수행한다. 하나의 노드 방문시 송전탑의 ..
https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 생각해야하는 구현 부분은 크게 다음과 같다. 음악이 재생된 시간 구하기 00:00부터 음악 끝난 시간까지 재생된 분 단위를 구한다. 00:00부터 음악 시작 시간까지 재생된 분 단위를 구한다. 끝난 시간까지 분단위 - 시작 시간까지 분단위 = "재생 시간"이 된다. #붙는 음을 다른 문자로 변환하기 네오가 들은 음을 라디오에서 재생한 음과 비교해야한다. 라디오에서 재생한 음 문자열에서 ..
https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 BFS, DFS 문제이고 특별히 신경써야할 부분이 없다. 2차원 배열 포인터 사용에 좀 난항을 겪었기에 정리하자면 아래와 같이 사용한다. vector v; vector* vp = &v; (*vp)[0][0] = 'X'; vp->size(); (*vp)[0].size(); bool visit[101][101]; bool (*pvisit)[101] = visit; pvisit[0][0] ..
https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 길이 4인 2차원 배열로 풀이 로직을 설명하겠다. 처음엔 [0][0]에서 길이 4만큼 검사를 시작한다. 여기서 검사란 [0][0]에서 시작 위치 포함하여 길이 4만큼 우측 아래로 시작 위치의 값과 동일한지 체크하는것이다. [0][0]에서 길이 4만큼 검사하여 일치하지 않으니 이제 쪼갠다. 이제 검사 길이는 4의 절반인 2로 바뀌고 시작 위치를 동그라미친 부분으로 쪼갠다. 각 시작 위치에..
https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 왼쪽과 오른쪽 인덱스와 현재 수열 총 합 sum을 가지고 결과를 찾아간다. 처음 왼쪽과 오른쪽 인덱스는 시작 인덱스 0을 가지고 sum은 0번째 인덱스 값을 가지고 시작한다. sumk라면 현재 시작 인덱스에 있는 값을 sum에서 빼주고 시작 인덱스를 1 증가한다. sum==k라면 길이가 현재 최소 길이 len보다 짧다면 결과가 될 수 있다. 최소 길이보다 짧다면 결과 시작 인덱스와 끝..
https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 n이 3일때를 예를 들어보겠다. 0 0 0 0 0 0 0 0 0 피라미드를 위와 같은 NxN 정사각형으로 생각해보자. 1 0 0 2 6 0 3 4 5 위와 같은 모양으로 만들 수 있다. 차례대로 위에서 읽으면 1, 2, 6, 3, 4, 5와 같이 피라미드 순서가 된다. 어떻게 NxN 정사각형인 2차원 배열을 채울 수 있을까? 채우는 방향은 3가지로 나뉜다. 1. 아래로 쭉 내려가기 2...
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 내 풀이 방법보다 다른 풀이 방법 코드가 깔끔해보여서 두가지 풀이 방법을 소개한다. (1) 내 풀이 스택에는 항상 큰 숫자가 아래에 있고 점점 작은 숫자가 위에 쌓이게 상태를 유지한다. numbers 문자를 하나씩 탐색하며 현재 numbers 문자보다 스택의 top이 작다면 pop을 반복해준다. 그리고 numbers 문자를 무조건 push한다. 이 과정을 numbers 문자 모두를 반복..