본문 바로가기

학습 기록 (Learning Logs)/알고리즘

(45)
[알고리즘] 시간이 없을 때 해시 정렬 완전탐색 깊이/너비 우선탐색 문자열 맵 해시 1) 두개의 배열을 비교 코딩테스트 연습 해시 완주하지 못한 선수 https://programmers.co.kr/learn/courses/30/lessons/42576 해시맵에 배열1을 양수값 넣는다. 배열2도 음수값으로 넣는다. 값>0 보다 크면 키-값은 불일치하는 키-값이다. hm.put(키, 값) // 키, 값 넣는다 hm.getOrDefault(키, 기본값) // 값 가져온다 hm.get(키) // 값 가져온다 import java.util.HashMap; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; ..
[프로그래머스][정렬]가장 큰 수 https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr import java.util.*; class Solution { public String solution(int[] numbers) { String answer = ""; String[] str = new String[numbers.length]; for(int i=0; i sort() ---> ..
[프로그래머스][정렬][k번째 수] https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int start; int end; int position; for(int i=0; i
[프로그래머스][해시] 완주하지 못한 선수 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 배열로 풀이 --> 실패 package com.company; import java.util.ArrayList; import java.util.Arrays; public class programmers { public static void main(String[] args) { //https://programmers.co.kr/learn/co..
[백준] No Duplicates https://www.acmicpc.net/problem/15098 15098번: No Duplicates Input is a line containing words separated by single spaces, where a word consists of one or more uppercase letters. A line contains no more than 80 characters. www.acmicpc.net package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util...
[백준] 숫자의 개수 세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다. package com.company; import java.io.BufferedReader; impor..
[백준] 평균은 넘겠지 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. package com.company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class test17 { public static void main(String[] args) throws IOException { Buffered..
[백준] 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { //최대값 BufferedReader br = new BufferedRea..