📖 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746 더보기 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000..
📖 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42748 더보기 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를..
📍개념 1. 선택 정렬 처리되지 않은 데이터 중 가장 작은 데이터와 가장 앞 데이터를 교환하며 정렬하는 알고리즘. O(N^2) public class Main { public static void main(String[] args) { int n = 10; int[] arr = { 7, 5, 9, 0, 3, 1, 6, 2, 4, 8 }; for (int i = 0; i arr[j]) { min_idx = j; } } // 가장 앞 데이터와 가장 작은 데이터 위치 교환 int temp = arr[i]; arr[i] = arr[min_idx]; arr[min_id..
1. 자바스크립트 개요와 개발환경 설정 키워드: 특별한 의미가 있는 단어 식별자: 이름을 붙일 때 사용하는 단어. 변수명이나 함수명 등으로 사용. 키워드 사용 안됨, 숫자 시작 불가, 특수문자(_, $ 제외) 사용 불가, 공백 불가 클래스는 대문자로, 그 외는 소문자로 시작. 여러 단어로 이뤄진 건 각 단어의 첫 글자를 대문자로 주석: // 혹은 /**/ 사용 [확인 문제 1-1] 결과 확인하기 [확인 문제 1-2] 결과 확인하기 [확인 문제 1-3] 식별자로 사용할 수 있는 것: a, hello, _, $ 없는 것: 10times [확인 문제 1-4] conole.log() 에서 console은? 연산자, log는? 메소드 [확인 문제 1-5] 여러 단어로 이루어진 식별자 만들기 WeAreTheWold..
📖 문제 https://www.acmicpc.net/problem/2331 더보기 문제 다음과 같이 정의된 수열이 있다. D[1] = A D[n] = D[n-1]의 각 자리의 숫자를 P번 곱한 수들의 합 예를 들어 A=57, P=2일 때, 수열 D는 [57, 74(=52+72=25+49), 65, 61, 37, 58, 89, 145, 42, 20, 4, 16, 37, …]이 된다. 그 뒤에는 앞서 나온 수들(57부터가 아니라 58부터)이 반복된다. 이와 같은 수열을 계속 구하다 보면 언젠가 이와 같은 반복수열이 된다. 이때, 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 구하는 프로그램을 작성하시오. 위의 예에서는 [57, 74, 65, 61]의 네 개의 수가 남게 된다. 입력 첫째 줄에..
📖 문제 더보기 문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자. 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다. (길이 없을 수도 있다) 이제 한 외판원이 어느 한 도시에서 출발해 N개의 도시를 모두 거쳐 다시 원래의 도시로 돌아오는 순회 여행 경로를 계획하려고 한다. 단, 한 번 갔던 도시로는 다시 갈 수 없다. (맨 마지막에 여행을 출발했던 도시로 돌아오는 것은 예외) 이런 여행 경로는 여러 가지가 있을 수 있는데, 가장 적은 비용을 들이는 여행..
📖 문제 https://www.acmicpc.net/problem/1389 더보기 문제 케빈 베이컨의 6단계 법칙에 의하면 지구에 있는 모든 사람들은 최대 6단계 이내에서 서로 아는 사람으로 연결될 수 있다. 케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이다. 예를 들면, 전혀 상관없을 것 같은 인하대학교의 이강호와 서강대학교의 민세희는 몇 단계만에 이어질 수 있을까? 천민호는 이강호와 같은 학교에 다니는 사이이다. 천민호와 최백준은 Baekjoon Online Judge를 통해 알게 되었다. 최백준과 김선영은 같이 Startlink를 창업했다. 김선영과 김도현은 같은 학교 동아리 소속이다. 김도현과 민세희는 같은 학교에 다니는 사이로 서로 알고 있다. 즉, 이..
📖 문제 https://www.acmicpc.net/problem/2644 더보기 문제 우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다. 여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오. 입력 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 ..
1. html과 javascript 차이 html의 경우 1+1을 그대로 출력하지만, javascript의 경우 계산 결과인 2를 출력한다 => 동적이다 javasvript html 1+1 2. event 2-1. onclick: click하는 경우 실행 2-2. onchange: 변화가 있는 경우 실행 2-3. onkeydown: 키보드를 누르는 경우 실행
📍개념 1. DFS 깊이 우선 탐색. 그래프의 깊은 부분을 우선적으로 탐색한다. 스택 or 재귀함수를 이용하여 구현. 시작 노드 push, 방문 처리 최상단 노드에 방문하지 않은 노드가 있다면 push, 방문 처리. 방문하지 않은 노드가 없다면 pop 불가능할 때까지 2,3 반복 그래프가 위와 같고, 시작 노드가 1인 경우 탐색 순서: 1 2 7 6 8 3 4 5 import java.util.*; public class Main { public static boolean[] visited = new boolean[9]; public static ArrayList graph = new ArrayList(); public static void main(String[] args) { for (int i = ..