SoftwareDo/알고리즘(코테) (14) 썸네일형 리스트형 [Java] 자동완성이 없는 환경을 위한 총정리 서론코딩테스트 환경에 따라 자동완성이 가능한 경우도 있습니다만, 저는 지금까지 자동완성이 없었습니다. 어렴풋이 기억하고 있다가 멘탈이 나가는 상황을 방지하기 위해 정리를 한번 해보고자 합니다.importimport java.util.*;각종 자료구조, 배열 관련 내용들에 필요합니다.자료구조Array, 배열배열의 선언과 객체화int[] arr = new int[]; //객체의 생성자인 ()는 붙이지 않는다.배열 선언과 초기값 지정int[] arr = {1, 2, 3, 4};특정 값으로 전체 지정Arrays.fill(arr, val);매개변수등으로 넘겨야 하는 경우class Node { E value; Node[] childerns = null; public Node(E value, Node.. [Java] Tree와 BFS, DFS (child가 여러개) Treeclass Node { E value; Node[] childerns = null; public Node(E value, Node[] childerns) { this.value = value; this.childerns = childerns; }}일반적으로 이진Tree등 자식의 개수가 정해진 Tree를 많이 사용하는데 자식의 개수가 가변인(배열인) Tree를 만들어 봤습니다.DFS, 깊이 우선 탐색void DFS(Node node) { if (node == null) { return; } System.out.println(node.value); if (node.childerns != null) { for .. baekjoon 1914. 하노이 탑 https://www.acmicpc.net/problem/1914문제원반의 개수가 주어질 때 최소 이동 순서와 이동 방법을 출력하라.in : 3out : 71 31 23 21 32 12 31 3풀이import java.util.Scanner;public class Main { static int count = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); StringBuilder sb = new StringBuilder(); q1914HanoiTower(n, '1', '2', '3', sb); S.. [Java] LinkedList로 구현한 Stack과 Queue LinkedListQueue를 구현할 때 Head(front) Tail(rear)가 필요합니다.Stack은 Head만 필요합니다.class LinkedNode { E value; LinkedNode next; public LinkedNode(E value, LinkedNode next) { this.value = value; this.next = next; }}(Java에 기본적으로 LinkedList가 있어 LinkedNode로 선언했습니다.)배열과 다르게 길이 제한 없이 사용가능한 자료구조입니다.레퍼런스 값 next를 통해 같은 형태의 다음 값으로 이동합니다.저장하고 탐색하는 방법에 따라 Stack, Queue, Deque등을 만들때 활용할 수 있습니다... baekjoon 7576. 토마토 (Java, 설명포함) https://www.acmicpc.net/problem/7576문제1이 익은 토마토, 0이 익지 않은 토마토, -1이 빈칸일 때 날이 지날수록 익은 토마토 상하좌우의 토마토는 익는다.모든 토마토가 익을 때 까지 걸리는 일수를 구하라(시작 부터 모두 익었으면 0, 모두 익을 수 없는 경우 -1)풀이public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(), n = sc.nextInt(); int[][] tomatos = new int[n][m]; for (int i = 0; i 0) { if (tomatos[j - 1.. leetcode 2. AddTwoNumbers (Java, 설명포함) https://leetcode.com/problems/add-two-numbers/description/문제숫자 하나를 역순으로 저장한 LinkedList가 2개 주어지고, 두 수를 더한 것을 역순으로 저장한 LinkedList로 반환하라.풀이public class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; }}public ListNode addTwoNumbers(ListNode l1, Li.. leetcode 12. IntegerToRoman (Java) https://leetcode.com/problems/integer-to-roman/description/문제4000 미만의 int num을 로마 숫자로 변환하라풀이public String intToRoman(int num) { StringBuilder sb = new StringBuilder(); for (int i = 0; i = 5) { sb.append("D"); num -= 500; } else if (num / 100 == 4) { sb.append("CD"); num -= 400; } for (int i = 0; i = 5) { sb.append("L"); num -= 50; } els.. leetcode 13. RomanToInteger https://leetcode.com/problems/roman-to-integer/description/문제로마자로 이루어진 문자열 s를 Inter로 변환하라.IV, IX, XL, XC 같이 이전 숫자가 이후 숫자보다 작은 경우, 이전 숫자를 뺀 값이다.풀이public int romanToInt(String s) { char[] charArray = s.toCharArray(); int answer = 0; for (int i = 0; i 하드코딩에 조금 가까운 방법입니다.특별한 자료구조를 사용하지는 않고 charArray 만 사용했고 for 문 하나로 그렇게 느리지 않은 방법입니다.public int romanToInt(String s) { // I = 0 HashMap c.. 이전 1 2 다음