Algorithm 306

11.뱀

📍 문제 설명 💡 접근 비슷한 문제를 풀었던 것 같은데, 뱀의 방향 변환 정보에 대한 처리가 미흡해서 그 부분은 풀이를 참고했다. nx, ny를 이용해서 뱀을 이동시키고 벽이나 자기 몸에 부딪히는지 확인하면 되는 문제였다. 사과가 없을 때 꼬리를 잘라내야하므로 큐를 이용해서 꼬리 부분을 0으로 만들어주었다. 그리고 방향 전환 시각이 되면 동남서북 or 동북서남으로 이동할 수 있게 turn 메서드를 이용했다. 👩‍💻 코드 import java.util.*; public class Main { //90도 회전을 위한 배열(동남서북 순으로 저장) public static int[] dx = {0,1,0,-1}; public static int[] dy = {1,0,-1,0}; public static Arra..

Algorithm/이코테 2022.01.06

잃어버린 괄호

📍 문제 설명 💡 접근 맨 처음에는 - 기준으로 분리를 해주고 분리된 문자열 각각 + 기준으로 분리를 해서 더해준다. 그리고 첫번째는 무조건 더하고 나머지는 빼주면 된다. 👩‍💻 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); String s = kb.nextLine(); //빼기 부분을 기준으로 일단 분리 String[] minusArr = s.split("-"); int sum = Integer.MAX_VALUE; //더하는 부분을 각각 더해준다. for(int i = 0; i < minusArr.length; i++) { int tm..

Algorithm/baekjoon 2021.12.31

동전 0

📍 문제 설명 💡 접근 교환가능한 동전 중 최대 동전으로 계속 잔돈 교환해주고 0원이 될 때 카운트 값을 리턴시킨다. 👩‍💻 코드 import java.util.*; public class Main { public static ArrayList graph = new ArrayList(); public static boolean[] visited = new boolean[9]; public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); Integer[] arr = new Integer[n]; for(int i = 0; i < n; i++) { arr..

Algorithm/baekjoon 2021.12.29

N과 M(4)

📍 문제 설명 💡 접근 N개 중에 M개 뽑는 조합의 문제인데, 같은 숫자를 뽑을 수 있다. 그러면 i+1로 호출했던 부분을 i로 호출하면 되겠다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { //조합 뽑아낼 배열 static int[] combi; static int n, m; public static StringBuilder sb = new StringBuilder(); private void dfs(int L, int s) { if(L == m) { for(int x : combi) sb.appen..

Algorithm/baekjoon 2021.12.27

N과 M(3)

📍 문제 설명 💡 접근 중복순열 뽑는문제다 https://inseongdev.tistory.com/140?category=906158 중복순열 구하기(DFS) 보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요. inseongdev.tistory.com 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { //출력될 숫자들을 넣을 배열 static int[] pm; //여기서는 중복 숫자도 뽑으므로 //사용할 숫자 확인하는 배열 필요없음 static int n, m; public static Stri..

Algorithm/baekjoon 2021.12.27

N과 M(2)

📍 문제 설명 💡 접근 N개 중에 M개 뽑는 조합의 문제이다. https://inseongdev.tistory.com/146?category=906158 조합 구하기(DFS) 보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요. inseongdev.tistory.com 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { //조합 뽑아낼 배열 static int[] combi; static int n, m; public static StringBuilder sb = new StringBuilder()..

Algorithm/baekjoon 2021.12.27

N과 M (1)

📍 문제 설명 💡 접근 N개 중에서 M개 출력을 위한 배열 pm이 필요할 것 같다. 중복된 수를 여러번 출력하면 안되니 방문 체크 배열 ch도 필요할 것 같다. 아래의 문제와 pm 배열에 값 넣는것 말고는 동일한 문제이다. https://inseongdev.tistory.com/143?category=906158 순열 구하기(DFS) 보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요. inseongdev.tistory.com 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { //출력될 숫자들을 ..

Algorithm/baekjoon 2021.12.27

단어 정렬

📍 문제 설명 💡 접근 이거는 사전순 정렬과 문자열의 길이가 짧을 때 정렬을 참고 하기위하여 작성하였음 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String[] arr = new String..

Algorithm/baekjoon 2021.12.27

통계학

📍 문제 설명 💡 접근 산술 평균, 중앙 값, 범위에 대해서는 별 문제 없이 풀었다. 하지만 최빈값에서 계수 정렬을 하려고 하니 음수 값도 들어와서 문제가 생겼다. 일단 맵에 해당 숫자의 키와 갯수를 넣어뒀다. 그리고 최빈값이 등장할 때 마다 리스트를 초기화시키면서 최빈값이 여러개 나올 때만 더해주는 식으로 했다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = n..

Algorithm/baekjoon 2021.12.27