JAVA/JAVA Algorithm 33

[프로그래머스] 추억 점수 문제 (java)

링크 더보기 https://school.programmers.co.kr/learn/courses/30/lessons/176963 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가..

JAVA/JAVA Algorithm 2023.06.19

[백준 9012]괄호 문제 java

[생각] 올바른 괄호는 '(' 와 ')' 가 짝을 이루고 순서도 (가 먼저 나온다. stack에 (가 나올때는 값을 추가하고 ) 가 나올때는 값을 빼는식으로 순서와 갯수가 맞는지 확인하는 아이디어를 이용 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead..

JAVA/JAVA Algorithm 2023.06.16

[프로그래머스] 크기가 작은 부분 문자열 _ 자바

처음 생각 public static int solution(String t, String p) { int t_size = t.length(); //5 //잘라낼 자릿수 int p_size = p.length(); //2 int answer = 0; int pint = Integer.parseInt(p); // 만들어 낼수 있는 숫자의 수 : t-p+1 개의 숫자를 만들어 낼 수 있다. //0이상 3 미만 for(int i=0 ; i< t_size - p_size+1 ; i++){ int checkNum = Integer.parseInt( t.substring(i, i+p_size) ); // 비교 대상이 될 숫자로 t 를 잘라냄 if(checkNum

JAVA/JAVA Algorithm 2023.06.12

[java] 백준 20923 할리갈리 문제

분배 받은 카드를 마지막 카드 부터 써야 한다 (나의 카드 - 스텍구조 ) 카드를 그라운드에 내려놓을 때는 본인의 그라운드에 쌓는다. (그라운드 - 스텍 구조) 승리시 진 사람의 카드를 뒤집어서 자기 카드 밑으로 추가한다. (본인카드 - 큐 구조 ) 카드를 받고 낼 때의 순서가 중요하다. 카드를 분배 받을 때 > 앞쪽 카드를 사용할때 > 앞쪽 그라운드에 내려 놓을때 > 뒤쪽 그라운드를 합칠때 카드 뒤쪽 / 그라운드 앞쪽 구조의 앞으로 넣고 빼는 행위 , 뒤로 넣고 빼는 행위가 모두 필요함으로 Deque 를 이용하여 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java..

JAVA/JAVA Algorithm 2023.06.07

[백준 10870번] 피보나치 수열 문제

n번째피보나치 수를 구하는 프로그램을 작성하시오 첫번째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 n = (n-1) + (n-2) (n-1) = (n-2) + (n-3) 규칙성이 존재 재귀호출로 간단하게 해결 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(function(n)); } public static int function(int n){ if (n

JAVA/JAVA Algorithm 2023.03.14

[프로그래머스] 바당화면 정리 문제

https://school.programmers.co.kr/learn/courses/30/lessons/161990?language=java 열을 기준으로 봤을때 가장 숫자가 작은 열을 (x,y) 가장 숫자가 큰 열을 (z,w) 라고 가정하자. 그러면 나머지 좌표들은 y열과 w 열 사이에 위치하게 된다. 그러므로 (0,y) 에서 (3.w) 까지 드래그하면 모든 좌표를 드래그 할 수 있다. 이제 다음과 같이 빨간 체크 부분에 파일이 존재한다고 가정해보자. 그러면 (0,1) 부터 (3,5) 까지 드래그 하면 모든 파일을 드래그 가능하지만 최소 거리는 아니다. 이때 최소거리는 (1,1) 에서 (3,5) 까지 드래그한 거리이다. 테스트용 코드 public static void main(String[] args)..

JAVA/JAVA Algorithm 2023.03.10

[백준] 2750번 수 정렬하기(Java)

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 5 5 2 3 4 1 예제 출력 1 2 3 4 5 나의 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws Ex..

JAVA/JAVA Algorithm 2022.11.14

[백준] 2675번 문자열 반복

문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. (구상) 문자열 입력은..

JAVA/JAVA Algorithm 2022.09.05