Algorithm/Programmers

Algorithm/Programmers

시소 짝꿍 [JAVA]

문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/152996# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr시소 중앙에서 2,3,4 미터 떨어져 있을 수 있고 왼쪽과 오른쪽의 무게는 거리*앉은 사람의 무게로 정해진다.각 사이드엔 한명만 시소를 탄다고 할 때, 시소가 균형을 이룬다면, 즉, 왼쪽과 오른쪽은 곱의 크기가 같다면 균형을 이룬다.이때, 균형을 이루는 쌍의 수를 구하라. 무게 자체가 1000밖에 되지 않는다. 따라서, *4를 해도 4000정도다.따라서, 각 무게의 곱을 배열의 인덱스로 해..

Algorithm/Programmers

숫자 변환하기

문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krx를 y로 만들 수 있는 지 묻는 문제다.규칙은 x에 n을 더하거나, 2 또는 3을 곱해가며 y를 만들 수 있다면 그 최소 횟수를, 없다면 -1을 리턴하면 된다. x에 해당 규칙들을 가해가며 y를 찾는 방법도 있겠지만, 나는 y에서 n을 빼거나 2 또는 3으로 나누어가며 x를 찾는 방식으로 문제를 풀었다. NumInfo객체에 현재 수의 값과 현재까지의 연산 횟수를 저장하고해당 객체를 PQ에 ..

Algorithm/Programmers

뒤에 있는 큰 수 찾기 [JAVA]

문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr배열이 주어지고 각 배열의 원소는 자신보다 뒤에 있는 원소 중 자신보다 크고 그 index가 가장 작은 원소를 자신의 뒷큰수로 여긴다. 각 원소에 대해 뒷큰수들을 찾아 배열에 저장하여 리턴하는 것이 목적인 문제다. 단, 뒷큰수가 없으면 -1을 배열에 저장하면 된다. 길이 자체가 10^6이기에 n^2의 풀이는 통과되기 힘들다.즉, 각 배열의 원소에 대해 자신의 뒤 원소들을 탐색하며 뒷큰수를 찾..

Algorithm/Programmers

호텔 대실 [JAVA]

문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr시작시간과 종료시간이 배열로 주어지고 해당 시간대가 서로 겹치는 시간대 중 가장 붐비는 시간대에서 중복 수를 구하는 문제다. 전형적인 누적합 문제였다. 코드class Solution { public int solution(String[][] book_time) { int answer = 0; int[] aSum = new int[60*24 + 10..

Algorithm/Programmers

연속된 부분 수열의 합

문제분석https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 오름차순으로 정렬된 중복 포함 배열이 주어진다. 그리고 해당 배열에서 연속된 x개의 합으로 만들어야 하는 수 k가 주어진다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.추가로 위 2가지 조건이 주어졌다. 처음 시도했던 방법은 0~n-1까지 순차적으로 각 지점부터 시작하는 Sum 객체..

Algorithm/Programmers

두 원 사이의 정수 쌍

문제분석https://school.programmers.co.kr/learn/courses/30/lessons/181187# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krx축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다. 간단한 문제다. 그냥 설명대로 두 원 사이의 정수로 구성된 점의 수를..

Algorithm/Programmers

[PCCP 기출문제] 3번 / 아날로그 시계 [JAVA]

문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/250135 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr시작 시간 ~ 종료 시간까지 초침이 분침 혹은 시침과 만나는 횟수를 리턴해주면 되는 문제다. 단, 초침이 분침,시침과 동시에 만나는 경우는 1번으로 센다. 시간을  x hour y min z sec 으로표현해보면시침의 위치는 x(x>=12 ? x-=12) + y/60 + z/3600  분침의 위치는 y/5 + z/300초침의 위치는 z/5 이다. 초침과 분침이 겹치려면 z/5 = y/5 +z..

Algorithm/Programmers

도넛과 막대 그래프 [JAVA]

문제분석https://school.programmers.co.kr/learn/courses/30/lessons/258711# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr단방향 edge들이 최대 100만개 주어진다.각 edge들은 도넛, 막대, 8자형 그래프 중 하나를 구성한다.단, 하나의 노드가 이 그래프와 무관하게 생성되어 있고 이 노드로 부터 각 그래프로의 간선이 추가되어 있다.이때, 해당 노드의 번호와 전체 그래프의 수를 종류별로 구해주면 되는 문제다. 언뜻보면 꽤 복잡하지만, 우리가 찾아야 하는 무관하게 생성된 노드는 해당 노드에서 다른 노드로의 간..

시롱시롱
'Algorithm/Programmers' 카테고리의 글 목록