목록전체 글 (180)
YataNox
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이DFS를 활용하여 문제를 풀이했다. 컴퓨터 수 만큼 리스트를 만든다.(해당 컴퓨터와 연결된 다른 컴퓨터를 기록할 리스트)방문한 적 없는 컴퓨터를 기준으로 DFS를 실행하여 방문한 적 없는 연결된 다른 컴퓨터를 계속 확인한다.자바 코드import java.util.*;class Solution { private boolean[] visited; private List> list; public int solution(int n, int[][] computers) { ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이위에서 아래로 내려가며 계산하면 고려할게 너무 많다.BOTTOM - UP 방식으로 위로 올라가면서 계산한다.한 줄로 표현하면 n층 i번과 i + 1번 중 더 큰 값을 n - 1층 i번에 더한다.그러면 맨 위층에는 아래서부터 더해서 올라온 값 중 가장 큰 값이 저장되고 그 값을 반환한다.자바 코드import java.util.*;class Solution { ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이1 ~ elements개(이하 k개)의 수열을 합산했을 때 나올 수 있는 수의 개수를 출력하는 문제이다.중복 값을 없애기 위해 HashSet을 사용한다.수열의 0번째 자리부터 시작하면서 k개의 수열의 합을 더한다.이후 더한 합을 HashSet에 저장한다.모든 연산이 종료된 뒤에 HashSet의 size를 확인하면 정답이 나온다.로직은 주석으로 확인자바 코드import java.util.*;class Solution { public int solution(int[] elements) { ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이스택(서브 컨테이너)을 활용해야하는 문제이다.1. 메인 컨테이너에서 꺼낼 수 있는 박스가 기사가 원하는 박스(이하 기사 박스)보다 작으면 다른 것을 고려할 필요가 없고 현재 컨테이너의 박스를 서브 컨테이너에 담으면 된다.2. 메인 컨테이너와 기사 박스가 같다면 정답을 +1 하고 다음 박스를 검사한다.3. 12를 제외한 상황은 서브컨테이너를 확인해야하는 상황이다.3-2. 서브 컨테이너에서 꺼낼 수 있는 박스와 기사 박스가 같다면 2와 같이 정답을 +1 처리하고 다음 박스를 검사한다.4. 서브 컨테이..
문제문제 풀이생각보다 단순했다.그냥 각 인원의 토핑 종류를 저장할 배열을 각각 만들고한 쪽에 일단 전부 몰아준 뒤에 하나씩 다른쪽에 넘겨주면서 토핑 종류를 비교하면 쉽다.자바 코드import java.util.*;class Solution { public int solution(int[] topping) { int answer = 0; // 토핑 종류 int toppingKind = Arrays.stream(topping).max().getAsInt(); // 각 인원이 가진 토핑 개수를 기록할 배열, 1 ~ toppingKind만큼의 수를 위해 toppingKind + 1 // 추가로 마지막에 가진 토핑 종류가 몇개인지 ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이문제 이해가 너무 어려웠다.(프로그래머스놈들 문제를 너무 이상하게 쓴다...)콜라츠 추측으로 인해 숫자 k가 어떻게 변화하는지를 꺾인선 그래프로 그렸을 때 주어지는 [a, b] 영역에 대해 넓이를 구하라는 문제이다.위의 사진을 기준으로 문제를 풀어보면k가 5부터 시작하여 16, 8 ,4 , 2, 1순으로 n = 6개의 꼭짓점이 발생한 것이 보인다. 이 때 각 꼭짓점을 기준으로 선을 하나 그어보면 사다리꼴의 영역이 보일 것이다. 이때 n - 1 개의 사다리꼴 영역이 생긴 것이 보인다.각 사다리 꼴은..
문제문제 풀이두 배열 중 한 배열은 한 값에 나누어떨어지고 한 배열은 안되는 경우 중 가장 큰 수를 뽑는 문제.생각해보면 정답은 한 배열의 가장 작은 수 보다 클 수가 없다. ( 더 크다면 그 값은 가장 작은 수로 무조건 나눌 수가 없다)그래서 확인은 두 배열의 가장 작은 값 두 개를 활용하여 풀면 된다.여기서 그 두 값만 확인한다고 끝이 아니라 각 수의 약수들도 확인을 해주어야한다.가장 작은 두 값은 조건을 만족하지 않는데 해당 두 수의 각 약수 중 하나가 조건을 만족하는 경우 해당 값이 정답이 되기 때문이다. 즉, 1. A배열의 가장 작은 수의 약수가 A배열을 다 나눌 수 있고 B배열을 다 못나누는 경우2. B배열의 가장 작은 수의 약수가 B배열을 다 나눌 수 있고 A배열을 다 못나누는 경우이 두 가..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이전에 아래 글처럼 특정 세대의 대장균을 찾은 적이 있다. 이때 서브쿼리를 재귀처리하여 사용했었는데 문제를 보자마자 일단 재귀로 각 세대를 다 찾아야겠구나 생각이 들었는데 또 다시 코드 노가다를 해야하나 싶었다.그러다가 RECURSIVE라는 재귀용 함수를 찾았다. (효자다 효자)RECURSIVE를 통해 각 대장균의 세대를 다 구해주니 너무 편하게 원하는 테이블을 만들었다.이후 해당 테이블을 셀프 조인하고 세대별로 그룹화 한 뒤 문제를 해결했다. [My_SQL] 특정 세대의 대장균 찾기문제 무식하게 데이터를..