ETC
-
[프로그래머스/JAVA] 개인정보 수집 유효기간 - 2023 KAKAO BLIND RECRUITMENTETC/Algorithm 2023. 6. 9. 10:05
풀이 일일이 파싱 문자열로 받아서 일일이 파싱하는 방법 한 달은 28일로 고정 입력 값을 1년=12달 1달= 28일로 변환해서 비교하는 방법 6월에 18개월 뒤면? 24월로 12로 나머지 연산을 하게 되면 0이 나오게 된다. 주의하자. 코드 제출 코드 import java.util.*; class Solution { static HashMap term = new HashMap(); public int[] solution(String today, String[] terms, String[] privacies) { ArrayList parsedToday = new ArrayList(); ArrayList answer = new ArrayList(); StringTokenizer st = new StringT..
-
[프로그래머스/JAVA] 로또의 최고 순위와 최저 순위 - 2021 Dev-Matching: 웹 백엔드 개발자(상반기)ETC/Algorithm 2023. 6. 9. 10:00
풀이 0과, 맞춘 값을 저장한다. 0은 원하는 대로 값을 변경할 수 있다. 이미 맞춘 값에 0이 다 틀린 값이면 최소 등수 이미 맞춘 값에 0이 다 맞은 값이면 최대 등수이다. 코드 제출 코드 class Solution { public int\[\] solution(int\[\] lottos, int\[\] win\_nums) { int[] answer = new int[2]; int cntZero = 0; int cntMatch = 0; for (int i = 0; i < 6 ; i++){ if(lottos[i] == 0) cntZero++; for(int j = 0 ; j < 6 ; j++){ if(lottos[i] == win_nums[j]) cntMatch++; } } int[] matchs = ..
-
[백준/JAVA] 14940번 쉬운 최단거리 - BFS(너비 우선 탐색)ETC/Algorithm 2023. 6. 9. 09:56
풀이 BFS 알고리즘 최단거리 문제이므로 Queue를 사용하여 BFS를 구현하였다. 시작점은 한 개 start[2]를 통해 시작점 x, y좌표를 저장한다. BFS 시작할 때 출력 형태를 맞추기 위해 시작점을 0으로 지정하고, 미리 visited를 true로 설정해서 진행한다. 출력하기 직전에 판단 if(visited[i][j]) bw.write(map[i][j] + " "); else if (!visited[i][j] && map[i][j] == 1) bw.write("-1" + " "); else bw.write("0" + " ");조건이 3개가 존재한다. 방문했을 경우 그대로 출력한다. 방문하지 않았는데 갈 수 있었던 길이면 -1로 그 외에는 원래 못가는 길이였으므로 0으로 출력한다. 코드 제출 코드..
-
[백준/JAVA] 11659번 구간 합 구하기 4 - 구간 합(Prefix Sum)ETC/Algorithm 2023. 6. 9. 09:49
풀이 구간 합을 미리 구한다. 일일이 구하게 되면 시간초과다. sum[n] = sum[n-1] + arr[i] 를 통해 미리 값들을 구해둔다. 코드 제출 코드 import java.io.*; import java.util.*; 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)); StringTokenizer st; st = new StringTokenizer(br.r..
-
[백준/JAVA] 9375번 패션왕 신해빈 - HashMap, 조합ETC/Algorithm 2023. 6. 9. 09:47
풀이 옷의 종류의 개수를 센다. HashMap 을 사용하여, 예를 들어 키:"모자" 값:2 형식으로 옷의 종류를 키값으로, 값에 같은 종류의 개수를 저장한다. 안 입은 경우도 포함한다. 조합을 사용하여 계산하는데, 안입은 경우도 포함한다. 대신 알몸인 경우를 제외해야 하므로 결과값에 -1을 해준다. 코드 제출 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWrit..
-
[백준/JAVA] 11721번 열 개씩 끊어 출력하기 - 문자열ETC/Algorithm 2023. 6. 9. 09:41
풀이 substring 사용 substring(시작점, 시작점+10)을 통해 10개의 문자를 파싱한다. 시작점은? 미리 문자열을 10으로 나눠서 몫 만큼 반복한다. idx는 0부터 시작하되, 다음 줄부터는 10씩 증가한다. 코드 제출 코드 import java.io.*; 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 ..
-
[백준/JAVA] 1107번 리모컨 - BruteForceETC/Algorithm 2023. 6. 9. 09:38
풀이 고장난 버튼 저장 방식 고장난 버튼을 미리 저장해둔다. 나중에 입력된 버튼이 고장난 버튼인지 찾기 위해서 for문을 돌리는 순간, 시간초과 확정이다. 이를 위해서 고장난 버튼을 boolean 형으로 저장한다. 입력된 버튼 파싱 방법 %10을 하면 입력된 버튼의 값이 /10을 하면 다음 버튼의 값이 1의 자릿수로 설정되고 이를 %10하면 버튼의 값이 무엇인지 알 수 있다. 원하는 채널 중에 가장 근삿값은? 초기 채널은 100번이다. 앞으로 4000번을 틀기 위해서 10개의 버튼이 모두 고장나있는 경우 3900번을 눌러야 한다는 의미이다. 여기서 3900번과 내가 임의로 값을 지정해서 그 입력할 값에 이상이 있는지 없는지를 판단하고 위에서 3900번과 비교를 한다. 이미 N-100을 진행했으므로, 0과..
-
[백준/JAVA] 5430번 AC - Deque, 문자열 파싱ETC/Algorithm 2023. 6. 9. 09:28
문제 풀이 자바의 Deque 컬렉션을 사용하여 문제를 풀이하였다. 문제의 요점인 방향성을 제어하기 위해 way라는 변수를 사용하였고, 입력값이 [ ] ,(반점) 3개의 특수문자로 감싸져 있기 때문에 StringTokenizer로 문자열을 파싱해줬다. 코드 제출 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Sy..