본문 바로가기

[JAVA] LeetCode 94 - Binary Tree Inorder Traversal 문제 Given the root of a binary tree, return the inorder traversal of its nodes' values. 이진 트리의 루트가 주어지면, 중위 순회(inorder traversal)하여 노드의 값을 출력하라. 풀이 방법 트리를 순회 하는 방법에는 대표적으로 3가지 방법이 있는데 각각 전위(preorder), 중위(inorder), 후위 순회(postorder)이다. 전위의 경우, ROOT를 가장 먼저 탐색하는 방법으로 ROOT -> LEFT 자식 노드 -> RIGHT 자식 노드 순으로 탐색하며, 후위의 경우, ROOT를 가장 나중에 탐색하는 방법으로 LEFT 자식 노드 -> RIGHT 자식 노드 -> ROOT 순으로 탐색한다. 오늘 문제에 주어진 중위 순회..
[월간 코드 챌린지 시즌1] 이진 변환 반복하기 [ 문제 설명 ] 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. 1. x의 모든 0을 제거합니다. 2. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010" 이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. [ 문제 풀이 ] 주어진 설명만 이해하면 풀이는 어렵지 않은 문제이다. 먼저, 입력으로 주어지는 s..
[JAVA] 백준 9933 - 민균이의 비밀번호 import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); ArrayList list = new ArrayList(); for(int i=0; i
[JAVA] 백준 4673 - 셀프 넘버 import java.util.*; public class Main { static boolean[] arr = new boolean[10001]; public static void main(String[] args) { for(int i=1; i
[JAVA] 백준 1157 - 단어 공부 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine().toUpperCase(); char[] arr = new char[200]; int max = 0; // 문자열의 길이만큼 반복문 수행하며 최대값을 구함 for(int i=0; i
[JAVA] 백준 1652 - 누울 자리를 찾아라 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); char[][] map = new char[101][101]; int horizontal = 0; // 가로 개수 int vertical = 0; // 세로 개수 // 입력 받기 for(int i=0; i
[JAVA] 백준 10163 - 색종이 import java.util.*; public class Main { static int[][] map = new int[101][101]; // 전체 맵 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = sc.nextInt(); // 색종이의 수 int[] paper = new int[count]; // 색종이 별 면적 int color = 1; // 색종이 구분 번호 for(int i=0; i
[JAVA] 백준 10988 - 팰린드롬인지 확인하기 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); StringBuffer sb = new StringBuffer(s); String reverse = sb.reverse().toString(); // 문자열 뒤집기 if(s.equals(reverse)) // 팰린드롬이면 System.out.println("1"); else // 팰린드롬이 아니면 System.out.println("0"); } }