분류 전체보기
-
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 11404, 플로이드 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제는 문제 이름에서부터 알 수 있듯이 플로이드 와샬 문제이다. a -> b 도시에 가는데 비용이 주어지는데 중복이 있을 수 있으므로 최소 값을 저장해야 한다. 📚 Process 초기화 및 선언 : 도시의 개수 N, 버스의 개수 M을 입력받고 M개만큼의 비용이 주어진다. 이것을 단방향..
(JAVA) [BOJ]백준 11404번, 플로이드https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 11404, 플로이드 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제는 문제 이름에서부터 알 수 있듯이 플로이드 와샬 문제이다. a -> b 도시에 가는데 비용이 주어지는데 중복이 있을 수 있으므로 최소 값을 저장해야 한다. 📚 Process 초기화 및 선언 : 도시의 개수 N, 버스의 개수 M을 입력받고 M개만큼의 비용이 주어진다. 이것을 단방향..
2023.08.16 -
https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 9205, 맥주 마시면서 걸어가기 📌 [ 난이도 : 골드 5 ] 난이도가 올라갈수록 문제를 이해하는데 걸리는 시간이 오래 걸리는 것 같다. 정리하자면 N+2 개 줄에 상근이네 집, 편의점, 펜타포트 락 페스티벌 좌표가 각각 주어지는데 50M 가기 전에 맥주 한병을 마셔야 하고 맥주 한 박스에는 맥주 20개가 들어있기 때문에 좌표간의 거리가 1000M (50M당 맥주 1개, 20개 보유) 면 ..
(JAVA) [BOJ]백준 9205번, 맥주 마시면서 걸어가기https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 9205, 맥주 마시면서 걸어가기 📌 [ 난이도 : 골드 5 ] 난이도가 올라갈수록 문제를 이해하는데 걸리는 시간이 오래 걸리는 것 같다. 정리하자면 N+2 개 줄에 상근이네 집, 편의점, 펜타포트 락 페스티벌 좌표가 각각 주어지는데 50M 가기 전에 맥주 한병을 마셔야 하고 맥주 한 박스에는 맥주 20개가 들어있기 때문에 좌표간의 거리가 1000M (50M당 맥주 1개, 20개 보유) 면 ..
2023.08.16 -
https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 1707, 이분 그래프 📌 [ 난이도 : 골드 4 ] 이번 문제는 그래프 이론과 BFS 를 사용한 풀이이다. 풀이에 들어가기 이전에 이분 그래프에 대한 이해가 어려워 시간이 오래걸렸다. 이분 그래프는 요약해서 말하자며 어떤 한 정점에서 연결된 모든 정점이 다른 값을 가져야 한다는 의미이다. 더 자세한 내용은 풀이에서 이어서 설명하겠다. - 📚 Process 초기화 및 선언 : 테스트 케이스 T와..
(JAVA) [BOJ]백준 1707번, 이분 그래프https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 1707, 이분 그래프 📌 [ 난이도 : 골드 4 ] 이번 문제는 그래프 이론과 BFS 를 사용한 풀이이다. 풀이에 들어가기 이전에 이분 그래프에 대한 이해가 어려워 시간이 오래걸렸다. 이분 그래프는 요약해서 말하자며 어떤 한 정점에서 연결된 모든 정점이 다른 값을 가져야 한다는 의미이다. 더 자세한 내용은 풀이에서 이어서 설명하겠다. - 📚 Process 초기화 및 선언 : 테스트 케이스 T와..
2023.08.15 -
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 14503, 로봇 청소기 📌 [ 난이도 : 골드 5 ] 이번 문제는 DFS 로 풀이를 진행했다. 문제 읽고 이해하는데만 한 세월 걸린 문제 ! 📚 Process 초기화 및 선언 : 청소할 구역에 대한 범위를 입력받고 시작 좌표와 방향을 받는다. 방향이 중요하기 때문에 dir 도 신경써서 선언해주어야 한다. static BufferedReader b..
(JAVA) [BOJ]백준 14503번, 로봇 청소기https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 14503, 로봇 청소기 📌 [ 난이도 : 골드 5 ] 이번 문제는 DFS 로 풀이를 진행했다. 문제 읽고 이해하는데만 한 세월 걸린 문제 ! 📚 Process 초기화 및 선언 : 청소할 구역에 대한 범위를 입력받고 시작 좌표와 방향을 받는다. 방향이 중요하기 때문에 dir 도 신경써서 선언해주어야 한다. static BufferedReader b..
2023.08.15 -
https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 1743, 음식물 피하기 📌 [ 난이도 : 실버 1 ] 이번 문제는 DFS & BFS 를 사용해서 풀이했다. 두 방식에 시간과 메모리 차이는 크게 없는 거 같지만 가장 중요한 개념이라고 생각하기에 항상 두 방식으로 풀어보길 권장한다. 📚 Process 초기화 및 선언 : 항상 배열을 만들어 줄 때 x, y에 대한 구분이 헷갈리는데 명확하게 하지 않으면 in..
(JAVA) [BOJ]백준 1743번, 음식물 피하기https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 1743, 음식물 피하기 📌 [ 난이도 : 실버 1 ] 이번 문제는 DFS & BFS 를 사용해서 풀이했다. 두 방식에 시간과 메모리 차이는 크게 없는 거 같지만 가장 중요한 개념이라고 생각하기에 항상 두 방식으로 풀어보길 권장한다. 📚 Process 초기화 및 선언 : 항상 배열을 만들어 줄 때 x, y에 대한 구분이 헷갈리는데 명확하게 하지 않으면 in..
2023.08.14 -
https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12981, 영어 끝말잇기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 HashMap 을 사용하여 풀이해보았다. 📚 Process 초기화 및 선언 : 같은 단어가 2번 나오면 탈락하게 되는 규칙이 있어 HashMap 을 사용하여 횟수를 체크했다. 구현 : 주어진 String[] words 를 for문을 통해 순회하며 단어가 2번 사용되는 경우, 단어가 지속되지 않는 경우를 체크한다. 체크된 경..
(JAVA) [프로그래머스] 12981번, 영어 끝말잇기https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12981, 영어 끝말잇기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 HashMap 을 사용하여 풀이해보았다. 📚 Process 초기화 및 선언 : 같은 단어가 2번 나오면 탈락하게 되는 규칙이 있어 HashMap 을 사용하여 횟수를 체크했다. 구현 : 주어진 String[] words 를 for문을 통해 순회하며 단어가 2번 사용되는 경우, 단어가 지속되지 않는 경우를 체크한다. 체크된 경..
2023.08.10 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12973, 짝지어 제거하기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 Stack 을 활용하여 풀이를 진행했다. 📚 Process 초기화 및 선언 구현 : 문자가 같은 문자를 제거하는 방법을 계속 진행해야 한다. 이것을 문자를 하나씩 넣는데 넣기 전에 이전에 들어있는 것을 하나씩 확인하면서 같으면 제거하고 아니면 add 해주는 방식의 stack 을 활용해서 풀이하면 된다. 1. stack 이 비어있으면 넣어준다. 2. 비어있지 않다면 직전에 들어간 것과 비교한다. 2-1. 넣어야 하는 문자와 직전에 들어..
(JAVA) [프로그래머스] 12973번, 짝지어 제거하기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12973, 짝지어 제거하기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 Stack 을 활용하여 풀이를 진행했다. 📚 Process 초기화 및 선언 구현 : 문자가 같은 문자를 제거하는 방법을 계속 진행해야 한다. 이것을 문자를 하나씩 넣는데 넣기 전에 이전에 들어있는 것을 하나씩 확인하면서 같으면 제거하고 아니면 add 해주는 방식의 stack 을 활용해서 풀이하면 된다. 1. stack 이 비어있으면 넣어준다. 2. 비어있지 않다면 직전에 들어간 것과 비교한다. 2-1. 넣어야 하는 문자와 직전에 들어..
2023.08.10 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12951, JadenCase문자열 만들기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 문자열 관련 문제이다. 📚 Process 초기화 및 선언 구현 : 공백이 연달아 나올 수 있다. 그렇기 때문에 공백이 나오는 순간마다 flag를 체크해준다. 그 flag 가 확인되면 대문자 처리를 해주고 나머지는 소문자로 처리해주면 된다. 숫자는 toUpperCase를 사용해도 무방하기 때문에 이렇게 처리하였다. ✅ 전체 코드 : 다른 분의 풀이도 참조했는데 너무나도 간단하게 푼 코드가 있어 첨부한다. import ja..
(JAVA) [프로그래머스] 12951, JadenCase 문자열 만들기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12951, JadenCase문자열 만들기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 문자열 관련 문제이다. 📚 Process 초기화 및 선언 구현 : 공백이 연달아 나올 수 있다. 그렇기 때문에 공백이 나오는 순간마다 flag를 체크해준다. 그 flag 가 확인되면 대문자 처리를 해주고 나머지는 소문자로 처리해주면 된다. 숫자는 toUpperCase를 사용해도 무방하기 때문에 이렇게 처리하였다. ✅ 전체 코드 : 다른 분의 풀이도 참조했는데 너무나도 간단하게 푼 코드가 있어 첨부한다. import ja..
2023.08.10