프로그래머스 3단계 여행경로 문제 url : https://programmers.co.kr/learn/courses/30/lessons/43164?language=java 문제설명주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다.항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다.tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다.주어진 항공권은 모두 사용해야 합니다.만일 가능한 경로가 2개 이상일 경우 ..
프로그래머스 3단계 네트워크 문제 url : https://programmers.co.kr/learn/courses/30/lessons/43162?language=java 문제설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computersr가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항컴퓨..
프로그래머스 2단계 가장 큰 수 문제 url : https://programmers.co.kr/learn/courses/30/lessons/42746?language=java 문제설명0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰수는 6210입니다.0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어졌을 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 리턴 하도록 solution 함수를 작성해주세요. 제한사항numbers의 길이는 1 이상 100,000 이하입니다. numbers의..
프로그래머스 2단계 완전탐색 문제 url : https://programmers.co.kr/learn/courses/30/lessons/42584?language=java 문제설명한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다.013은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예prices return173 입출력 ..
오늘은 자료구조 Tree 에 대해 알아보려고 한다. Tree에 대해 최근 배웠고, 오늘 푼 알고리즘 문제가 트리와 관련이 있기 때문에 정리하려고 한다. 참고로 B Tree 내용이 많기 때문에 내일 다시 정리하려고 한다. 우선 트리에 대해 정리하고, 마지막에 알고리즘 풀이를 하겠다. 1. 트리의 특징 나무위키 가라사대, 트리는 부모 노드 밑에 자식 노드가 연결되 있고, 자식 노드 밑에 또 다른 자식 노드가 연결되 있는 재귀적 형태의 자료구조를 의미한다.트리는 그래프의 한 종류로서 각각의 노드들을 연결하는 간선은 하나뿐이며, 비순환형 그래프를 트리라고 부른다. 트리와 그래프를 비교해보자! 그래프 트리 각각의 노드들 사이에 2개 이상의 경로 가능, 양방향 경로 가능 두개의 노드 사이에 오직 한개의 경로만 가능..
1. Java 구현 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)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[] input = br.readLine().split(" "); int a = Integer.parseInt(input[0]); int b = Integer.parseInt(input[1]); inpu..
1. Java 구현 package stream; import java.io.*; import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int t = Inte..
1. Java 구현 import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String a = br.readLine(); char op = br.readLine().charAt(0); String b = br.readLine(); if(a.length() < b.length()) { String temp = a; a = b; b = temp..
1. Java 구현 package Q1371; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); char[] arr = new char[26]; int max = 0; while(sc.hasNextLine()) { char[] input = sc.nextLine().toCharArray(); for (int i = 0; i < input.length; i++) if (input[i] != ' ') max = Math.max(max, ..
1. Java 구현 (1) 시간초과 : 시간복잡도 O(n^2) → 실패 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int t = Integer.parseInt(br.readLine()); for(int i = 0; i < t; i++) { ..