전체 글

Algorithm/백준

프로그래머스 : 숨바꼭질(Java)

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net [풀이] BFS를 구현하여서 풀었는데 처음에 이 문제를 풀지 못했다. 그래서 다른 분들이 푼 코드를 보고 푸는 방식을 공부한 후에 풀었다. for문에서 x-1 , x+1, x * 2를 가는 방식을 BFS에 구현하는 것이 하나의 주의할 부분, 두번째는 N과 K가 같을때의 조건을 추가하는 것이 또 하나의 주의할 부분이라고 생각한다. 이 문제에 대해서 100퍼센트 이해하지는 ..

Algorithm/프로그래머스

프로그래머스 : 단어 변환(Java)

https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr [문제] 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin..

Algorithm/프로그래머스

프로그래머스 : 네트워크(Java)

https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr [문제] 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다...

Algorithm/프로그래머스

프로그래머스 : 기능개발(Java)

https://programmers.co.kr/learn/courses/30/lessons/42586?language=java 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr [문제] 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대..

Algorithm/백준

백준 2606번 : 바이러스(Java)

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net [풀이] 바이러스는 연결되어 있는 컴퓨터 모두에게 전파되므로 연결되어있는 모든 컴퓨터를 탐색하면서 count++를 하면 된다. DFS를 이용해서 문제를 풀었으며 DFS는 스택을 이용해서 구현했다. 주어진 입력값에 맞게 2차원 배열에 연결되어있는 부분은 1로, 그렇지 않으면 0으로 초기화를 한 후, 방문하지 않은 곳은 visited 배열에 false로, 방문한 곳은 true로 값을 수정하면서 구현했다. ..

Algorithm/백준

백준 1743번 : 음식물 피하기(Java)

https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ 10,000)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진 www.acmicpc.net [풀이] BFS를 이용하여 문제를 풀었다. 음식물이 있는 곳은 1로 표시를 한 후, 음식물이 있는 곳에서 상하좌우로 움직이며 count변수를 더한 후, 최대값을 구했다. 문제에서 주의할 부분은 첫째, BFS를 구현할 수 있는지, 둘째, 음식물이 있는 곳을 기점으로 상하좌우를 살피므로 반복문을 통해서 count 변수의 최대값을 구하는 부분 이렇게 두가지라..

skyey94
Retrospect