기본 콘텐츠로 건너뛰기

2월, 2023의 게시물 표시

코딩 테스트 - 가장 먼 노드

package programmers ; import java.util.* ; public class 가장 _ 먼 _ 노드 _230228 { /* 가장 먼 노드 문제 설명 n 개의 노드가 있는 그래프가 있습니다 . 각 노드는 1 부터 n 까지 번호가 적혀있습니다 . 1 번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다 . 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다 . 노드의 개수 n, 간선에 대한 정보가 담긴 2 차원 배열 vertex 가 매개변수로 주어질 때 , 1 번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요 . 제한사항 노드의 개수 n 은 2 이상 20,000 이하입니다 . 간선은 양방향이며 총 1 개 이상 50,000 개 이하의 간선이 있습니다 . vertex 배열 각 행 [a, b] 는 a 번 노드와 b 번 노드 사이에 간선이 있다는 의미입니다 . 입출력 예 n vertex return 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 입출력 예 설명 예제의 그래프를 표현하면 아래 그림과 같고 , 1 번 노드에서 가장 멀리 떨어진 노드는 4,5,6 번 노드입니다 . */ public static void main (String[] args) { int n = 6 ; int [][] edge = {{ 3 , 6 } , { 4 , 3 } , { 3 , 2 } , { 1 , 3 } , { 1 , 2 } , { 2 , 4 } , { 5 , 2 }} ;

개발 공부 - 맥북에서 오디오 밸런스 안 맞을 때 모노로 듣기.

 유튜브를 이어폰으로 듣는데, 밸런스가 꽝이라 모노로 출력하도록 찾아보았다. 놀랍게도 이미 지원을 하고 있었다! (맥북에 대한 기대가 없는 나) 이렇게 설정 -> 손쉬운 사용 -> 스테레오 오디오를 모노로 재생을 활성화 해준다.

코딩 테스트 - 수식 최대화

package programmers ; import java.util.LinkedList ; import java.util.List ; public class 수식 _ 최대화 _230227 { private String 표현식 ; private long 최대값 = 0 ; public long solution (String expression) { this . 표현식 = expression ; 순열 ( 0 , 3 , new String[]{ "+" , "-" , "*" } , new boolean [ 3 ] , "" ) ; return 최대값 ; } public void 순열 ( int start , int target , String[] arr , boolean [] checked , String result) { if (start == target) { calc(result) ; } else { for ( int i = 0 ; i < arr. length ; i++) { if (!checked[i]) { checked[i] = true; 순열 (start + 1 , target , arr , checked , result + arr[i]) ; checked[i] = false; } } } } public void calc (String operator) { StringBuilder sb = new StringBuilder() ; List<Long> 피연산자 Arr = new Linked

코딩 테스트 - SqlWorldCup

/* 다음과 같은 구조를 가진 두 개의 테이블 ( teams 및 matches ) 이 제공됩니다 . 테이블 팀 생성 ( null 이 아닌 team_id 정수 , team_name varchar(30) null 이 아님 , 고유 (team_id) ); 테이블 일치 생성 ( null 이 아닌 match_id 정수 , null 이 아닌 host_team 정수 , guest_team 정수가 null 이 아님 , null 이 아닌 host_goals 정수 , guest_goals null 이 아닌 정수 , 고유 (match_id) ); 팀 테이블의 각 레코드는 단일 축구팀을 나타냅니다 . 테이블 경기 의 각 기록은 두 팀 간의 완료된 경기를 나타냅니다 . 팀 ( host_team , guest_team ) 은 팀 테이블 ( team_id ) 에서 해당 ID 로 표시됩니다 . 어떤 팀도 자신과 경기를 하지 않습니다 . 각 경기의 결과 ( 즉 , 각 팀이 득점한 골 수 ) 를 알고 있습니다 . 테이블에 설명된 모든 경기 후 각 팀이 득점한 총 점수를 계산하려고 합니다 . 채점 규칙은 다음과 같습니다 . 한 팀이 경기에서 이기면 ( 상대 팀보다 훨씬 더 많은 골을 넣음 ) 3 점을 받습니다 . 한 팀이 경기에서 무승부를 기록하면 ( 상대 팀과 정확히 같은 수의 골을 넣은 경우 ) 1 점을 받습니다 . 팀이 경기에서 패배하면 ( 상대 팀보다 득점이 적음 ) 점수를 받지 못합니다 . 팀 테이블 에 설명된 모든 팀 ( team_id ) 의 순위를 반환하는 SQL 쿼리를 작성합니다 . 각 팀에 대해 설명된 모든 경기 후 받은 점수 ( num_points ) 와 이름을 제공해야 합니다 . 테이블은 num_points 기준으로 정렬되어야 합니다 ( 내림차순 ). 동률인 경우 team_id 별로 행을 정렬합니다 ( 오름차순 ). 예를 들어 :

개발 공부 - SQL (SqlSum, SqlEventsDelta)

SqlSum Given a table  elements  with the following structure: create table elements ( v integer not null ); write an SQL query that returns the sum of the numbers in column  v . For example, given: v --- 2 10 20 10 your query should return 42. Copyright 2009–2023 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited. SELECT SUM ( v ) FROM ELEMENTS SqlEventsDelta Given a table  events  with the following structure: create table events ( event_type integer not null, value integer not null, time timestamp not null, unique(event_type, time) ); write an SQL query that, for each  event_type  that has been registered more than once, returns the difference between the latest (i.e. the most recent in terms of  time ) and the second latest  value . The table should be ordered by  event_type  (in ascending order). For example, given the following data: event_type | value | time ------------+

코딩 테스트 - Codility Maintenance!

갑자기 점검 하는 코딜리티...

코딩 테스트 - 무지의 먹방 라이브

package programmers ; import java.util.Arrays ; public class 무지의 _ 먹방 _ 라이브 _230224 { public static void main (String[] args) { int [] food_times = { 3 , 1 , 2 } ; long k = 5 ; System. out .println( solution (food_times , k)) ; } public static int solution ( int [] task_times , long k) { long 총합 = 0 ; int 길이 = task_times. length ; int [] 정렬용배열 = new int [ 길이 ] ; for ( int i = 0 ; i < 길이 ; i++) { 정렬용배열 [i] = task_times[i] ; 총합 += task_times[i] ; } if ( 총합 <= k) { // 종료 시간이 먹을 것보다 크면 -1 임 ( 섭취 불가 ) return - 1 ; } Arrays. sort ( 정렬용배열 ) ; int 최소 = 0 ; int width = 길이 ; long cnt = 0 ; while (k >= width) { // 최소값과 한바퀴 도는 길이보다 시간이 더 길면 while 문 돌려서 계산한다 . k -= width ; cnt++ ; while ( 정렬용배열 [ 최소 ] - cnt <= 0 ) { 최소 ++ ; widt

코딩 테스트 - 입국심사

package programmers ; import java.util.Arrays ; public class 입국심사 _230223 { public static void main (String[] args) { int n = 6 ; int [] times = { 7 , 10 } ; System. out .println( solution (n , times)) ; } public static long solution ( int n , int [] times) { long answer = 0 ; // 6 // 7 분후 : 4 // 10 분후 : 3 // 14 분후 : 2 // 20 분후 : 1 -> 30 분 // 21 분후 : 1 -> 28 분 // 이분탐색 문제임 -> 이분탐색을 try Arrays. sort (times) ; long 최소시간 = 0 ; // <<<<<<<<<<<<<< long 최대시간 = ( long ) n * times[times. length - 1 ] ; while ( 최소시간 <= 최대시간 ) { long 이분탐색시간 = ( 최소시간 + 최대시간 ) / 2 ; long 심사인원수 = 0 ; for ( int i = 0 ; i < times. length ; i++) { //sort 했으니까 빠른 사람부터 처리 심사인원수 += 이분탐색시간 / times[i] ; } if ( 심사인원수 < n) {

코딩 테스트 - n진수 게임

package programmers ; public class n 진수게임 _230222 { public static void main (String[] args) { int n = 2 ; int t = 4 ; int m = 2 ; int p = 1 ; System. out .println( solution (n , t , m , p)) ; } public static String solution ( int n , int t , int m , int p) { //n = 진법 //t = 미리 구할 숫자의 개수 //m = 게임에 참가하는 인원 //p = 튜브의 순서 StringBuilder answer = new StringBuilder( "" ) ; StringBuilder 시작용제로 = new StringBuilder( "0" ) ; String[] arr16 진수용 = { "A" , "B" , "C" , "D" , "E" , "F" } ; int counter = 1 ; while ( t * m > 시작용제로 .length() - 1 ) { // 숫자 개수 * 인원 에 수렴할 때까지 StringBuilder subBinarys = new StringBuilder( "" ) ; int 몫 = counter ; int 나머지 ; while ( 몫 > 0 ) { 나머지 = 몫 % n ; 몫 = 몫 / n ;

코딩 테스트 - SparseBinaryDecomposition (수정중)

public class SparseBinaryDecomposition_230221 { public static void main (String[] args) { int N = 26 ; System. out .println( solution (N)) ; } public static int solution ( int N) { //N 은 이진 표현에 1 로 설정된 두 개의 연속 비트가 포함되어 있지 않으면 희소 //101001 = 희소 //11010 = 희소하지않음 int solution =- 1 ; for ( int i= 2 ; i<=Math. ceil ((N- 1 )/ 2 ) ; i++){ if ( 희소확인 (i)){ int j = N-i ; if ( 희소확인 (j)){ return j ; } } } return solution ; } static boolean 희소확인 ( int N){ if ((N&(N>> 1 ))>= 1 ){ return false; } return true; } }