알고리즘 143

[코드트리] 코드트리 빵 for JAVA

https://www.codetree.ai/training-field/frequent-problems/codetree-mon-bread/description?page=3&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 빡구현 문제였다. 설명도 아주 야무지게 되어있어서 그대로 구현하면 되는데 구현 능력 부족으로 인해... 굉장히 오래걸렸다. 헷갈린 부분은.. 격자에 있는 사람들이 움직일 때 한명씩 움직이면서 편의점에 도착하자마자 해당 편의점 칸을 지나갈 수 없는건가? 라는 생각을 잠깐 했었다. 그런데 4번정도 읽어보니까 '이때부터 ..

[BaekJoon] 백준 7290번 _ 0 만들기 for JAVA

https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 생각보다 어려웠던 문제였다. N이 9까지밖에 없어서 수식을 만드는건 완탐인게 자명한데 띄어쓰기일 때 숫자를 붙여야해서 굉장히 헷갈렸다. 그래서 ArrayList 써서 붙이기로함 로직 1. 완탐으로 ' ', '+', '-'를 N-1개 뽑는다. -> 백트래킹 사용 2. 숫자랑 연산자를 저장할 ArrayList를 각각 선언함 3. for문으로 연산자를 훑으면서 1은 숫자리스트에 미리 넣어놓고 그 다음부터 연산자와 숫자를 보면서 각자 리스트에 넣음 - ' ..

알고리즘/백준 2022.11.27

[BaekJoon] 백준 17136번 _ 색종이 붙이기 for JAVA

https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 생각보다 되게 어려움;;;; 왜냐? 무한루프 엄청 돌았다.ㅋㅋㅋㅋ 10x10이고 색종이도 1x1, 2x2, 3x3, 4x4, 5x5밖에 없어서 완탐이구나 했음 조금 생각해보면 무작정 큰걸 붙인다고 최선인건 아니라는걸 알 수 있다. 그래서 만약에 맵에서 1을 만났을 때 1x1, 2x2, 3x3, 4x4, 5x5 중에 하나를 붙일 테니까 각자 붙일 수 있는지 확인하고 붙이는 방식으로 백트래킹..

알고리즘/백준 2022.11.20

[BaekJoon] 백준 17825번 _ 주사위 윷놀이 for JAVA

https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 첫째 줄에 주사위에서 나올 수 10개가 순서대로 주어진다. www.acmicpc.net 백트래킹으로 풀었다. 생각보다 어려운 문제이다. 진짜로.... 윷놀이 판을 어떻게 설계할지가 제일 고민되는 문제였고 생각 없이 풀었더니 3번 테케에서 틀렸다~! 일반 계속 틀린 이유 1. hashMap 사용하고 value를 배열로 넣어놓았는데 get으로 value값을 받아오니 그 배열을 사용하면 map에 있는 value값도 바뀌었다. 배열이라서 그런가봄 것참;; 2. 이것때문에 코드 고쳤는데 이유를 생각 안하고 고쳤더니 같은 오류가 다시 발생함. 근데 이유를 몰랐기 때문에 저 이유일거라고 짐작을 못함 그래서 일일히 디버깅하..

알고리즘/백준 2022.11.20

[BaekJoon] 백준 16637번 _ 괄호 추가하기 for JAVA

https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net 이 문제 생각보다 굉장히 어려웠다. ㄷㄷㄷ 머리야 돌아가!!! 순서 0. 저장할 때 숫자와 연산자를 따로 저장함 - dfs로 완전 탐색을 돌건데 괄호를 치거나 안치거나 둘 중 하나잖음 그래서 따로 재귀 타야함 - index로 훑을건 연산자! - 연산자 인덱스 0일 때 num 0,1과 함께 계산, 1일 때 num 1,2 계산.. 등등 - 첫 번째 숫자는 result에 미리 넣어놓는다..

알고리즘/백준 2022.11.13

[BaekJoon] 백준 19236번 _ 청소년 상어 for JAVA

https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 진짜 별거 아닌데 요즘 코로롱 때문에 알고리즘 며칠 쉬었더니 뇌가 굳어버려서 엄청 오래걸렸다. 핑계인가... 아무튼 특별할 것 없는 구현 + 백트래킹을 가미한 문제이다. 상어가 잡아먹을 수 있는 물고기가 여러마리이기 때문에 dfs로 모든 경우의 수를 확인해야 한다. 처음에 그냥 그리디하게 큰거 잡아먹다가... 아닌걸 깨닫고 백트래킹으로 바꾸는데 이게 물고기 움직임 -> 상어 움직..

알고리즘/백준 2022.11.13

[BaekJoon] 백준 3190번 _ 뱀 for JAVA

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 재미있는 시뮬레이션 문제였다~! 그냥 문제 그대로 풀면 된다. 나는 사과를 set에 넣고 방향을 바꾸는 구간은 map에 넣었다. 참고로 set 안에 배열 형태로 넣으면 비교를 못함. 예를 들어 set 형태로 만들고 set.add(new int[]{}) 이런 형태로 집어넣었다면 set.contains(new int[]{}) 형태로 비교가 안된다. 배열이니까 주소값이 다르기 때문에... 그래서 key를 만들..

알고리즘/백준 2022.11.06

[프로그래머스] 두 큐 합 같게 만들기 for JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보고 약간 당황한 문제이다. 문제 자체의 이해는 쉽다. 문제를 보고 특정 알고리즘이 그닥 떠오르지 않았다. 이게 그리디하게 풀리지 않는다면.. 내가 풀 수 없는 어떤 알고리즘을 사용하는거거나 엄청난 수학 문제구나 생각함. 결론부터 말하자면 그리디가 맞았다. 두 큐가 숫자를 계속 옮겨갈건데 그리디하게 한쪽이 크면 작은 쪽으로 옮기는 방식을 선택했고 가장 고민했던 부분은 어떤 방법으로도 원소..

[BaekJoon] 백준 15644번 _ 구슬 탈출 3 for JAVA

구슬탈출2: https://ticssfm.tistory.com/185 [BaekJoon] 백준 13460번_구슬탈출 2 for JAVA https://www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의.. ticssfm.tistory.com https://www.acmicpc.net/problem/15644 15644번: 구슬 탈출 3 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이..

알고리즘/백준 2022.10.30

[BaekJoon] 백준 13460번_구슬탈출 2 for JAVA

https://www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 하루종일 고민하고 디버깅 4시간 했는데 못풀었다! 딴것보다 visited 처리를 어떻게 해야할지 감이 전혀 안잡혀서ㅠㅠ 그리고 사실 빨간색 공의 움직임만 고려하고 파란색 공은 무지성 움직이려고 했어서... 편협한 시각의 패배였다... + 문제 제대로 안읽음 여튼 그래서 남의거 참고함 visited 배열을 4차원으로 만들어서 빨간 공과 파란 공의 위치를..

알고리즘/백준 2022.10.30