https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 💡풀이 어렵지 않게 구현이 가능한 문제이다. 한번에 한 계단 또는 두 계단씩 오를 수 있고, 한칸씩 갈 수 있는 것의 최대 개수가 3일 때의 문제인데, 반드시 세개를 연속으로 밟을 수 없으므로 세개의 값 중 하나를 제외하고 다음으로 나아가는 형식으로 풀어나갈 수 있다. 예를 들어 1 4 5 6 7 4 10 9 7 이 있을 때 3개씩 비교를 진행할 것이기 때문에 dp에는 초기 값으로 [0, 1, 5(1+4)] ..
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 💡풀이 우선, 양수와 음수가 들어온다는 정보가 있고, 0 에 가까운 용액을 만들어내는 용액을 찾는다는 조건이 있다. 그렇다면 양수와 음수를 각각 list에 삽입하고 두개를 계산해가면서 다음 것, 다음 것과 같은 형태로 비교 연산을 하면 된다는 생각을 제일 처음 하고, 처음 비교하는 수는 최대 정수인 10억으로 설정한다. 재귀함수를 호출해서 a리스트에 있는 값과 b..
https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 💡풀이 수열을 계산하는 문제로, 간단하게 풀었다. 정의를 봤을 때, + 를 기준으로 곱하는 두 수는 0에서 n-1까지 가는 수와 n-1에서 까지 가는 수 두가지이다. 그렇다면 2중 for문을 이용해 0에서 올라가는 값을 차례로 구하면 된다. packa..
https://www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 💡풀이 간단한 비교-선택 문제로, 간단하게 계속해서 기존에 있는 것과 새 것을 비교하여 연산을 수행, 제시된 수열이 없어질 때까지 반복하는 문제이다. 스택을 사용하면 간단하게 풀이가 가능하다. 최대로 하기 위해서는 무조건 큰 값과 작은 값을 비교해 작은 값을 반으로 나누는 것이 유리하기 때문에, 우선 들어온 수를 오름차순으로 정렬하고, 처음이라면 제일 마지막에 있는 값(Deque는 양 끝에서 추출..
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 요구사항 - 같은 문자열이 목록에 있는지 체크한다 - 같은 문자열이 연속된 문자열이 아닐 경우 false 반환 - 아니라면 그룹 단어로 카운트한다 풀이 - 단어가 들어오면, 해당 단어의 첫번째 문자열부터 체크한다. - 이전 문자열과 현재 문자열이 같지 않다면 boolean 배열에 true를 넣는다 - 이전 문자열과 현재 문자열이 같다면 다음으로 넘어간다 - 이후에 ..
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 기본적으로 트리 탐색 - 재귀호출에 대한 문제이다. 우선, 재귀호출 방식을 쓰기 전 트리 탐색을 하는 방법으로 길게 쓰자면 다음과 가은 코드를 사용할 수 있다. public void q11725() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new Outp..
https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이 문제는 크게 어려운 것이 없는데, 몇가지의 제한조건을 생각해야 한다. 1. 순차적으로 전부 speeds를 더한 다음에 덱 순회가 이루어져야 한다 2. 덱 안에 있는 아이템은 연쇄적으로 빠져나갈 수 있다. 여기까지 생각하고 문제에 제시된대로 풀이 과정은 다음과 같다 1. 작업을 전부 Deque 안에 {progresses, speeds} 형태의 배열로 넣는다. 2. 덱에 있는 것들을 순차순회..
https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 현재까지 풀이 방법 1. hashmap을 이용하여 키 값이 같은 것들을 list화 후 넣는다 2. 이것을 for 문을 통해 검증하며 같은 값이 아닌 것끼리 더한다 인데 쓰읍 이게 너무 길어서 고민하고 있는 중.. 풀고 나면 정리해야지 public int t15(String[][] clothes) { int answer = 0; HashMap hm = new HashMap(..
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 풀이 1. 앞에 있는 순서대로 배열에 넣는다 2. 배열에 넣고 순서대로 비교하여, 현재 제일 앞의 순서와 나머지를 비교한다. 3. 나머지를 비교해서 현재 수가 제일 크다면 출력, 그렇지 않다면 제일 뒤로 이동시킨다. 4. 처음 m이 현재 어느 순서에 있는지를 출력한다 오답풀이 단순한 큐 호출 문제인데 이걸 틀린 이유는... 덱을 고집했기 때문이다 덱은 map 형식을 지원하지 않기 때문에 순회를 ..