Algorithm
-
[백준/JAVA] 스택 수열Algorithm/Java 2024. 10. 19. 15:42
https://www.acmicpc.net/problem/1874- 정답 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException {// => 예제 입력으로 나온 값들은 스택에서 pop()된 순서대로 나타남// stack result(예제 입력)// {1}+// {1,2}+// {1,2,3}+// {1,2,3,4}+ {4}// {1,2,3}-// {1,2}- {4,3}// {1,2,5}+// ..
-
[백준/JAVA] 프린터 큐Algorithm/Java 2024. 10. 17. 10:37
https://www.acmicpc.net/problem/1966- 정답 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); // 3 StringTokenizer st; for(int i = 0; i queue = new LinkedList(); // 배열 형태 큐 st..
-
[백준/JAVA] 후위 표기식2Algorithm/Java 2024. 10. 17. 10:37
https://www.acmicpc.net/problem/2346- 문제 풀이==> 후위 표기식 ABC*+DE/-==> 원래 식A+(B*C)-(D/E)💡스택을 사용해 피연산자(A,B,C..)가 나오면 스택에 집어넣고 연산자가 나올 때마다 스택에 있는 피연산자를 꺼내 연산!ex) 스택에 A,B,C가 들어있고 다음에 나오는 피연산자 *가 나오면 스택 상단에 있는 두개의 피연산자를 꺼내(.pop()) 피연산자와 연산한다 (B*C) - 정답 코드import java.io.*;import java.util.Stack;public class Main { public static void main(String[] args) throws IOException { BufferedRead..
-
[프로그래머스/JAVA] 큰 수 만들기Algorithm/Java 2024. 10. 16. 15:31
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이 1. 필요한 변수 초기화 StringBuilder answer = new StringBuilder(); // 결과를 저장할 문자열 빌더int length = number.length() - k; // 최종적으로 남아야 할 숫자의 길이int index = 0; // 탐색 시작 인덱스 StringBuilder 객체인 answer를 생성하여 결과 문자열을 저장합니다. StringBuilder를..
-
[프로그래머스/JAVA] 구명보트Algorithm/Java 2024. 10. 16. 15:31
- 문제 풀이 1.몸무게 배열 정렬import java.util.*;class Solution { public int solution(int[] people, int limit) { int answer = 0; // [50, 50, 70, 80] // [50, 70, 80] Arrays.sort(people); 2. 가장 무거운 사람부터 순회하면서 보트에 태울 수 있는 사람들을 짝지어 태운다. int index = 0; // 가장 가벼운 사람의 인덱스 // 무거운 사람 -> 가벼운 사람 순으로 순회 for(int i = people.length - 1; i >= index; i--) { 배열의 끝에서부터 시작하여, ..
-
[프로그래머스/JAVA] 체육복Algorithm/Java 2024. 10. 15. 21:25
https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이도난당하지 않은 학생 수를 기본적으로 계산합니다.여벌 체육복이 있지만 도난당한 학생을 먼저 처리해 중복을 방지합니다.나머지 여벌 체육복을 가진 학생들이 앞뒤 학생에게 빌려줄 수 있는지 확인합니다.최종적으로 체육복을 가진 학생 수를 반환합니다. 1. 학생 번호 순차적으로 배치 lost와 reserve 배열을 정렬하여, 학생들의 번호가 순서대로 배치되도록 합니다.import java.util...
-
[프로그래머스/JAVA] 여행경로Algorithm/Java 2024. 10. 14. 20:20
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이 1.변수 선언 및 초기화list: 모든 가능한 경로를 저장하는 리스트입니다. 탐색을 마친 경로는 여기에 저장됩니다.visited: 각 항공권이 사용되었는지 여부를 기록하는 배열입니다. 이미 사용한 티켓을 다시 사용하지 않도록 하기 위한 배열입니다.import java.util.*;class Solution { // 방문한 경로들을 저장할 리스트 static ArrayList l..
-
[프로그래머스/JAVA] 단어 변환Algorithm/Java 2024. 10. 6. 16:35
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이visited 배열과 answer 변수를 초기화.dfs 함수를 통해 재귀적으로 변환 과정을 탐색.한 글자 차이가 나는 단어로만 변환을 시도.모든 경로를 탐색하면서 목표 단어에 도달하면 cnt 값을 answer에 저장.탐색 완료 후 최종 변환 횟수를 반환. 1. 변수 초기화:visited: 각 단어가 변환 과정에서 이미 사용되었는지 확인하기 위한 배열입니다. 길이는 주어진 words 배열의 ..