본문 바로가기

알고리즘

(160)
[백준] 19236. 청소년 상어 https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static class Fish { int x; int y; int d; ..
[백준] 16401. 과자 나눠주기 https://www.acmicpc.net/problem/16401 16401번: 과자 나눠주기 첫째 줄에 조카의 수 M (1 ≤ M ≤ 1,000,000), 과자의 수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 과자 N개의 길이 L1, L2, ..., LN이 공백으로 구분되어 주어진다. 과자의 길이는 (1 ≤ L1, L2, ..., LN www.acmicpc.net import java.util.Arrays; import java.util.Scanner; // 16401 과자 나눠주기 public class Main { static int M, N, result; static int[] arr; public static void main(String[] args) { Scanner ..
오픈채팅방 https://programmers.co.kr/learn/courses/30/lessons/42888# 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr import java.util.ArrayList; import java.util.HashMap; class Solution { public static String[] solution(String[] record) { HashMap hm = new HashMap(); // 마지막에 바꾼 유저 아이디와 닉네임 업데이트 for(int i=0; i
비밀지도 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; String[] cmp = new String[n]; String zero = "0"; String[] st1 = new String[n]; String[] st2..
다트게임 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr import java.util.ArrayList; class Solution { public int solution(String dartResult) { int answer = 0; char[] arr = dartResult.toCharArray(); ArrayList calc = new ArrayList(); for (int i = 0; i < arr.length; i++) { if (arr[i] == 'S' || arr[i] == 'D' || arr[i] == 'T') { if (arr[i] == 'D') { calc.set(ca..
크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr import java.util.ArrayList; public class Solution { static ArrayList bucket = new ArrayList(); public static int solution(int[][] board, int[] moves) { int answer = 0; for(int i=0; i
실패율 https://programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public int[] solution(int N, int[] stages) { int[] answ..
5658. [모의 SW 역량테스트] 보물상자 비밀번호 이 문제에서는 String으로 주어진 16진수를 어떻게 10진수로 쉽게 변환하고, 어떻게 Rotate를 간단하게 할 수 있는지, 중복 문자열을 어떻게 쉽게 체크하는지, 생성 가능한 수를 내림 차순으로 어떻게 정렬할지가 관건인 문제라고 생각합니다. (1) 저는 16진수를 10진수로 parseLong(변환할 16진수 문자열, 16) 메소드로 해결 하고, (2) Rotate 하는 것은 새로운 문자열 String s2 를 선언해서 가장끝에 있는 문자열을 가장 처음에 가져오고, substring으로 처음부터 마지막전까지 문자열을 잘라 더하는 방법으로 해결했습니다. (3) 잘려진 중복문자열은 HashSet에 넣어서 중복되면 애초에 들어가지 않게 했습니다. (4) 마지막으로 HashSet에 담긴 문자열을 어떻게 내림..