Algorithm

· Algorithm
https://www.acmicpc.net/problem/1166 1166번: 선물 민식이는 아이들에게 선물할 같은 크기의 작은 박스를 N개 가지고 있다. 모든 작은 박스는 정육면체이고, 크기는 A × A × A 이다. 민식이는 이 작은 박스를 크기가 L × W × H 인 직육면체 박스에 www.acmicpc.net 풀이 직육면체의 박스에 정육면체를 집어넣는 문제이다. 우선, 기준이 될 셋 중 가장 큰 길이를 가져온다. (이것이 기준 길이가 된다) 그리고 이것의 크기를 비교하여 작거나 클 경우의 값을 대입한다. public void q1166(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int l = sc.nextInt(); int w =..
· Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 h-index 를 구하는 방법은 1. 들어온 citations를 오름차순으로 정렬한다. 2. 반복문을 통해서 제일 마지막 - i 에 해당하는 h의 정보를 현재 citations와 같은지 비교한다. 3. 현재 citations[i]의 수가 h보다 크거나 같다면 그것이 h-index이기 때문에 해당하는 h를 리턴한다 간단한 정렬 및 검증이기 때문에 큰 풀이 과정이 필요하지 않았다 (...) pu..
· Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음에는 간단하게 생각했다. 그냥 순회를 하면서 맞는 값을 찾아다가 넣는 방식으로... class Solution { public int[] solution(int n, long left, long right) { int len = n * n; int num = 0; int cnt = 0; int arrNum = 0; int[] answer = new int[(int) (right-left)..
· Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 확인 1. want + number = 10 2. discount에서 해당하는 구간의 값이 맞는 것을 찾아야 함 3. 순서는 상관 없음 4. 전부 다 일치하는 값만 카운트하여 반환 오답 정리 public String[] t10(String[] want, int[] number, String[] discount) { int answer = 0; String[] arr = new String[..
· Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 1번 for문을 돌면서 한칸씩 회전한 문자열을 담는다. -> (s.substring(i, s.length()) + s.substring(0, i); - 덱에 여는 괄호가 나올 때까지 담고, 여ㅇㅋㅋ는 괄호가 나온다면 해당하는 쌍을 빼낸다. - 반복한 다음 덱에 남은 문자가 없다면 ++ public int t09(String s){ int answer = 0; for(int i = 0 ; ..
· Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 자체는 어렵지 않은데, 수열이라는 말에 깜빡하고 넘어가면 어려워지는 문제다. 나 혼자 풀다가 3중 이상 반복문을 사용하는 것에 어이가 없어서 답변을 보고 말았지. 이것같은 경우는 어차피 모든 수를 순차적으로 더해나간다를 기반한 것이다. s를 포인터라고 생각하고, 포인터를 한칸씩 앞으로 이동시키면서 모든 수를 더해나간다. 만약, 포인터의 위치가 전체 길이를 벗어나는 수가 될 경우 % 를 통해..
· Algorithm
https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 이거 전에 푼 적이 있다. 언젠지 생각하고 있으니까 처음 파이썬 배울 때 과제가 이거였다. 파이썬으로 했을 때도 굉장히... 굉장히 싫었는데 자바로 하려니까 더 안 된다. 우선, 풀이 과정 자체는 다음과 같다 1. 문자일 경우 바로 문자열에 추가한다 2. 여는 괄호가 나올 경우, 스택에 넣는다 3. 닫는 괄호가 나올 경우, 스택을 확인하여 괄호 전까지의 연산자를 문자열에 넣는다 4. 연산자일 ..
· Algorithm
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 진짜 머리 빠개지는 줄 알았음 타임오버 개새끼 회의실 사용은 시작시간 / 끝나는 시간이 주어진 상태고, 여기에서 최대로 많은 회의를 진행해야 한다. 그렇다면 여기서 중요한 포인트는 시작시간-끝나는 시간이 작은 것이다. 당연함. 회의 시간이 짧을수록 많은 팀을 우겨넣을 수 있다. 그렇다면 정렬을 할 때 1. 끝나는 시간을 기준으로 2. 끝나는 시간이 같다면 회의 시간이 적은 것으로 구현을 하면 되시겠다 import java.util.*; public class Main { public static void main..
· Algorithm
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 나같은 경우는 알고리즘 문제를 풀 때, 문제의 해답을 쭉쭉 적어나간 다음에 생략할 수 있는 부분을 제거해나가는 식으로 풀어나간다. 이 문제도 마찬가지로 진행했다. 우선 정렬 조건을 본다. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 3. 중복된 단어는 제거한다 여기에서 길이같은 경우는 sort()를 통하여 쉽게 해결이 가능하고, 길이가 같을 경우 사전 순으로 비교하여 연산하..
JEE-JEEE
'Algorithm' 카테고리의 글 목록 (6 Page)