목록Java (116)
Hayden's Archive
알고리즘 문제 출처 : https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 �� www.acmicpc.net 내가 작성한 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.LinkedList; ..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1406 1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 www.acmicpc.net 내가 작성한 코드 커서를 기준으로 커서 왼쪽은 left 스택, 커서 오른쪽은 right 스택에 쌓는다. 최종 출력할 때 left 스택의 내용물들을 차례대로 꺼내서 append 하고 reverse 한 후에 right 스택의 내용물들을 append 하면 된다. import java.io.BufferedReader; import java.io.BufferedWriter; imp..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 내가 작성한 코드 처음에는 문제가 이해가 되지 않았다. 다시 읽고 이해를 했는데 그러니까 스택에 1,2,3,...,n까지 차례대로 넣을 건데 주어진 숫자가 [4, 3, 6, 8, 7, 5, 2, 1]와 같이 주어졌다면 4를 꺼내기 위해서 1~4까지 스택에 push하고 4가 가장 위에 있을 때 ..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 www.acmicpc.net 내가 작성한 코드 문자를 스택에 push하다가 공백(" ")을 만나면 pop해서 꺼낸다. 마지막 문자열 같은 경우 뒤에 공백이 없는데 그래서 마지막 문자일 경우를 따로 pop해서 꺼낼 수 있도록 조건을 따로 뒀다. Scanner로 하다가 줄 단위로 받는 건 BufferedReader와 BufferedWriter를 사용하는 게 더 좋을 것 같아서 방법을 바꿨다. 또 String ..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 � www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Stack stack = new Stack(); Scanner sc = new Scanner(System.in); int num = sc...
관련 포스팅 : https://hayden-archive.tistory.com/199 참고한 코드 : https://bumbums.tistory.com/4 다음 그래프의 시작 꼭지점에서 특정 꼭지점까지의 거리와 경로를 출력해본다. class Dijkstra { private int n; //꼭지점 수를 변수로 선언 private int[][] weight; //2차원 배열 weight에 각 꼭지점의 가중치를 저장 private String[] saveRoute; private String[] vertex = {"a","b","c","d","e","f","g","z"}; public Dijkstra(int n) { super(); this.n = n; //생성자를 통해 꼭지점 수를 주입하고, weight ..
알고리즘 문제 출처 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVWgkP6sQ0DFAUO&categoryId=AWVWgkP6sQ0DFAUO&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 내가 작성한 코드 큐의 FIFO 성질을 이용해서 큐 5개를 만들면 어렵지 않게 풀 수 있다. import java.util.Scanner; import java.util.LinkedList; import java.util.Queue; import java.io.FileInputStream; cl..
문제) 첫 줄에는 가로와 세로가 주어지고, 둘째줄에는 분할선의 개수가 주어진다. 가로 분할선일 경우 0과 해당 번호가 주어지고, 세로 분할선일 경우 1과 해당 번호가 주어진다. 분할선으로 분할된 영역 중에서 가장 넓은 영역의 넓이를 출력한다. package practice; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int w = sc.nextInt(); //가로 int h = sc.nextInt(); //세로 int[] wArr = new int[w]; int[] hArr = new..
알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈� programmers.co.kr 내가 작성한 코드 class Solution { public int solution(int n) { int ans = 0; if(n % 2 == 1) ans = 1; //홀수일 경우 while(n>=1) { n /= 2; //2로 나눈 몫 if(n % 2 == 1) {//몫이 홀수일 때 n -= 1; ans++; ..
알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42588 코딩테스트 연습 - 탑 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다 programmers.co.kr 내가 작성한 코드 class Solution { public int[] solution(int[] heights) { int[] answer = new int[heights.length]; int send = 0; int receive = 0; for(int i=heights.length-1; i>=1; i--){ if(heights[i]..