코딩테스트/프로그래머스
-
[문제] 코딩테스트 연습 - 가장 먼 노드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] graph[20002][20002]를 생성한후 edge[i][0], edge[i][1]을 양방향으로 넣어서 해당 노드가 있다고 선언해주자. 이후 bfs 알고리즘을 이용해서 반복문으로 1부터 순서대로 다음 도착지점에 도달할 수 있는지 파악하면서 가면 된다. [회고] 사실 해당 알고리즘은 최악의 경우 20,000 * 20,000이 나올 수 있기에 시간초과가 날 수 있는 알고리즘이다. 우선은 해당 알고..
[C++] 가장 먼 노드[문제] 코딩테스트 연습 - 가장 먼 노드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] graph[20002][20002]를 생성한후 edge[i][0], edge[i][1]을 양방향으로 넣어서 해당 노드가 있다고 선언해주자. 이후 bfs 알고리즘을 이용해서 반복문으로 1부터 순서대로 다음 도착지점에 도달할 수 있는지 파악하면서 가면 된다. [회고] 사실 해당 알고리즘은 최악의 경우 20,000 * 20,000이 나올 수 있기에 시간초과가 날 수 있는 알고리즘이다. 우선은 해당 알고..
2023.08.09 -
[문제] 코딩테스트 연습 - 가장 먼 노드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] bfs를 이용해서 쉽게 풀 수 있는 문제이다. 처음에 입력이 주어질때 edge 값을 graph[edge[i][0]] 에 edge[i][1] 들을 넣으면 graph[1] 안에 2와 3이란 값이 순서대로 들어가 있다. 이걸 양방향으로 처리해주고 반복문을 이용해서 1부터 순서대로 노드를 가까운 순서대로 방문하자. 그렇게 방문하다가 마지막 거리일때 answer를 반환해주면 된다. [회고] 첨에는 단순히 ..
[Swift] 가장 먼 노드[문제] 코딩테스트 연습 - 가장 먼 노드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] bfs를 이용해서 쉽게 풀 수 있는 문제이다. 처음에 입력이 주어질때 edge 값을 graph[edge[i][0]] 에 edge[i][1] 들을 넣으면 graph[1] 안에 2와 3이란 값이 순서대로 들어가 있다. 이걸 양방향으로 처리해주고 반복문을 이용해서 1부터 순서대로 노드를 가까운 순서대로 방문하자. 그렇게 방문하다가 마지막 거리일때 answer를 반환해주면 된다. [회고] 첨에는 단순히 ..
2023.08.09 -
[문제] 코딩테스트 연습 - 두 큐 합 같게 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 두 포인터(투 포인터)를 이용해서 쉽게 정답이 유추가 되는 문제였다. 우선 qeuue1, queue2 배열의 모든 원소를 더한 숫자를 먼저 ans1, ans2로 만들어주자. 그리고 두 배열의 모든 원소가 들어가있는 벡터 vec를 만들어주자. 이제 0부터 시작하는 start 변수와 queue1의 크기(index는 0부터 시작이니 queue1의 크기라는건 queue2의 첫번째 원소이다.) 값..
[C++] 두 큐 합 같게 만들기[문제] 코딩테스트 연습 - 두 큐 합 같게 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 두 포인터(투 포인터)를 이용해서 쉽게 정답이 유추가 되는 문제였다. 우선 qeuue1, queue2 배열의 모든 원소를 더한 숫자를 먼저 ans1, ans2로 만들어주자. 그리고 두 배열의 모든 원소가 들어가있는 벡터 vec를 만들어주자. 이제 0부터 시작하는 start 변수와 queue1의 크기(index는 0부터 시작이니 queue1의 크기라는건 queue2의 첫번째 원소이다.) 값..
2023.08.08 -
[문제] 코딩테스트 연습 - 테이블 해시 함수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] sort를 이용해서 정렬하기 + 반복문을 이용해서 xor 값을 계산해주기. 두가지를 이용해서 풀었다. 우선, c++의 내장 함수 sort(algorithm 라이브러리 include 필요) 를 이용해서 compare 함수를 만들어주자. 그 후, row_begin부터 row_end까지(index는 0부터 시작이라서 1씩 뺀 상태로 시작 필요) 반복문 내부에서 data 크기만큼 또 한번 반복문을 이..
[C++] 테이블 해시 함수[문제] 코딩테스트 연습 - 테이블 해시 함수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] sort를 이용해서 정렬하기 + 반복문을 이용해서 xor 값을 계산해주기. 두가지를 이용해서 풀었다. 우선, c++의 내장 함수 sort(algorithm 라이브러리 include 필요) 를 이용해서 compare 함수를 만들어주자. 그 후, row_begin부터 row_end까지(index는 0부터 시작이라서 1씩 뺀 상태로 시작 필요) 반복문 내부에서 data 크기만큼 또 한번 반복문을 이..
2023.07.14 -
[문제] 코딩테스트 연습 - 택배상자 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 처음에 문제를 읽으면 잘 이해가 안 될 수 있지만 이해를 하면 쉬운 문제이다. 문제 중 하나였던 [4,3,1,2,5]를 예시로 문제를 풀어보면 우선은 1부터 5까지 순서가 나열되어 있는 컨베이어 벨트가 있다고 보자. 이제 여기서 1부터 순서대로 뽑아서 트럭에 [4,3,1,2,5]의 순서대로 넣으면 된다. 트럭에 해당 순서대로 넣기 위해서 보조 컨베이어 벨트를 사용해보자. 이와 같이 순서대로 처음 컨베이..
[C++] 택배상자[문제] 코딩테스트 연습 - 택배상자 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 처음에 문제를 읽으면 잘 이해가 안 될 수 있지만 이해를 하면 쉬운 문제이다. 문제 중 하나였던 [4,3,1,2,5]를 예시로 문제를 풀어보면 우선은 1부터 5까지 순서가 나열되어 있는 컨베이어 벨트가 있다고 보자. 이제 여기서 1부터 순서대로 뽑아서 트럭에 [4,3,1,2,5]의 순서대로 넣으면 된다. 트럭에 해당 순서대로 넣기 위해서 보조 컨베이어 벨트를 사용해보자. 이와 같이 순서대로 처음 컨베이..
2023.06.25 -
[문제] 코딩테스트 연습 - 점 찍기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 원의 방정식은 a^2 + b^2 = r^2이니 해당 문제에서는 d가 r을 대체하므로 a^2 + b^2 = d^2이라고 볼 수가 있다. 고로 만약 d가 5로 주어지고 k가 1로 주어진 경우라면 위의 그림과 같이 x좌표가 0부터 거리 5(d)가 될 때까지 k값만큼 움직이면서 해당 위치에서 원의 방정식을 이용한 y좌표의 정수의 마지막까지를 더할 수 있다는 것을 알 수가 있다. 이는 곧, 수식으로 표현하면 (..
[C++] 점 찍기[문제] 코딩테스트 연습 - 점 찍기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 원의 방정식은 a^2 + b^2 = r^2이니 해당 문제에서는 d가 r을 대체하므로 a^2 + b^2 = d^2이라고 볼 수가 있다. 고로 만약 d가 5로 주어지고 k가 1로 주어진 경우라면 위의 그림과 같이 x좌표가 0부터 거리 5(d)가 될 때까지 k값만큼 움직이면서 해당 위치에서 원의 방정식을 이용한 y좌표의 정수의 마지막까지를 더할 수 있다는 것을 알 수가 있다. 이는 곧, 수식으로 표현하면 (..
2023.06.25