본문 바로가기

알고리즘 문제 풀이/다시 봐야할 것들10

백준 - 사탕 게임 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/3085 [문제 설명] [접근 방법] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main { static char[][] board; static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader.. 2021. 12. 22.
프로그래머스 - 조이스틱 (실패 못풀었습니다) 문제출처 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr class Solution { public int solution(String name) { int joyMoveForAlp = 0; int numOfNotA = 0; for (int i = 0; i < name.length(); i++) { // 14번째 알파벳부터는 반대로 가야함. if (13 < name.charAt(i)-64) { joyMoveForAlp += 26 - (name.charAt(i) - 'A'); } else {.. 2021. 8. 17.
(백트래킹) 78. Subsets 링크 배열에 있는 수를 넣었다 뺏다 해서 만들 수 있는 모든 배열을 순서에 상관 없이 반환하시오. 예시 ) [1] -> [],[1] 두개의 배열을 담은 리스트를 반환. 내가 생각한 접근 방법. 매우 비효율적 각 배열의 요소가 있는 경우와 없는 경우 이 두가지의 경우로 계속 반복됩니다. 그러면 0번째 인덱스부터 마지막 인덱스까지 숫자가 있는 배열 addedList, 숫자가 없는 배열 nonAddedList를 만들어 계속 Set에 더해주면(중복을 허락하지 않기 때문에) 답이 되지 않을까 싶어서 짰습니다. import java.util.ArrayList; import java.util.HashSet; import java.util.List; class Solution { List answer; HashSet .. 2021. 6. 17.
Minimum Number of Operations to Move All Balls to Each Box 처음 생각한 답. import java.util.HashSet; import java.util.Set; class Solution { public int[] minOperations(String boxes) { int[] answer = new int[boxes.length()]; Set set = new HashSet(); int boxLength = boxes.length(); for (int i = 0; i < boxLength; i++) { if (boxes.charAt(i) == '1') { set.add(i); } } for (int i = 0; i < boxLength; i++) { int count = 0; for (int j : set) { count += Math.abs(i-j); } .. 2021. 4. 14.