[Java] 이진트리순회(깊이우선탐색)
·
💡 Algorithm/인프런
Problem 💻아래 그림과 같은 이진트리를 전위순회, 중위순회, 후위순회로 출력할 수 있게 연습해 보세요. 전위순회 출력 : 1 2 4 5 3 6 7중위순회 출력 : 4 2 5 1 6 3 7후위순회 출력 : 4 5 2 6 7 3 1 Solution 💡class Node { int data; Node lt, rt; public Node(int val) { data = val; lt = rt = null; }}public class INF0705 { Node root; public static void main(String args[]) { INF0705 tree = new INF0705(); tree.root = new..
[Java] 매출액의 종류
·
💡 Algorithm/인프런
Problem 💻현수의 아빠는 제과점을 운영합니다. 현수아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 매출액의 종류를각 구간별로 구하라고 했습니다.만약 N=7이고 7일 간의 매출기록이 아래와 같고, 이때 K=4이면20 12 20 10 23 17 10각 연속 4일간의 구간의 매출종류는첫 번째 구간은 [20, 12, 20, 10]는 매출액의 종류가 20, 12, 10으로 3이다.두 번째 구간은 [12, 20, 10, 23]는 매출액의 종류가 4이다.세 번째 구간은 [20, 10, 23, 17]는 매출액의 종류가 4이다.네 번째 구간은 [10, 23, 17, 10]는 매출액의 종류가 3이다.N일간의 매출기록과 연속구간의 길이 K가 주어지면 첫 번째 구간부터 각 구간별매출액의 종류를 출력하는..
[Java] 멘토링 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
Problem 💻현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니다.멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다.선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정합니다.만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면, A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 합니다.M번의 수학성적이 주어지면 멘토와 멘티가 되는 짝을 만들 수 있는 경우가 총 몇 가지 인지 출력하는 프로그램을 작성하세요. Solution 💡1. 4중 for문 사용import java.util.Scanner;public class Main { public static void mai..
[Java] 두 배열 합치기 - Two-Pointers Algorithm
·
💡 Algorithm/인프런
public class INF0301 { public ArrayList solution(int n, int m, int[] a, int[] b) { ArrayList answer = new ArrayList(); int p1 = 0, p2 = 0; while(p1 < n && p2 < m) { if(a[p1] < b[p2]) answer.add(a[p1++]); else answer.add(b[p2++]); } while(p1 < n) answer.add(a[p1++]); while(p2 < m) answer.add(b[p2++]); return answer; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); i..
[Java] 등수구하기 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
문제N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.같은 점수가 입력될 경우 높은 등수로 동일 처리한다.즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.public class INF0208 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] score = new int[n]; for (int i = 0; i  풀이for (int i = 0; i 등수를 입력하기 위한 루프를 돈다.처음에는 1등으로 초기화 한다.남..
[JAVA] 임시반장 정하기 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
public class INF0211 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] grid = new int[n+1][6]; for(int i=1; i