백준 케빈 베이컨의 6단계 법칙 1389
1. 문제 1.1. 컴퓨팅적 사고 플로이드 워셜 알고리즘 11403번 경로찾기와 다르게 최단 경로의 비용을 구하는 문제이다. 예를들면, 1번 노드에서 -> 2번, 3번, 4번, 5번 ,6번을 거쳐간 비용의 총합이다. 단순히 경로찾기문제는 비용이 문제가 아니라 해당되는값이 존재하는지 안존재하는지 여부만 찾았다. 자기 자신의 값을 0으로 초기화하고
1. 문제 1.1. 컴퓨팅적 사고 플로이드 워셜 알고리즘 11403번 경로찾기와 다르게 최단 경로의 비용을 구하는 문제이다. 예를들면, 1번 노드에서 -> 2번, 3번, 4번, 5번 ,6번을 거쳐간 비용의 총합이다. 단순히 경로찾기문제는 비용이 문제가 아니라 해당되는값이 존재하는지 안존재하는지 여부만 찾았다. 자기 자신의 값을 0으로 초기화하고
1. 경로찾기 문제 1.1. 컴퓨팅적 사고 모든정점에서 다른정점까지 모두 탐색할 수 있는지 판별하는 문제이다. 따라서 플로이드 워셜 알고리즘을 사용하면 모두 구할 수 있고 n의 범위가 100이하이기때문에 n^3 플로이드 워샬알고리즘을 사용하였다. 즉, 플로이드 와샬 알고리즘은 모든 정점에서 모든 정점으로의 최단거리를 구하는 알고리즘입니다. 다익스트라 알
1. 트리의 부모찾기 문제 1.1. 컴퓨팅적 사고 인접리스트로 해당되는 그래프를 연결시킨다. dfs로 해당되는 모든 부모의 값을 배열 갱신시킨다.(단 루트노드는 1번 부터 시작된다.) 시작점 예) parent[y] = x 최종적으로 parent에는 각 노드 2번부터 n번까지 부모의 값이 담겨져 있다. 1.2. 소스코드
1. 촌수계산 문제 1.1. 컴퓨팅적 사고 부모자식관계를 트리형태로 나타낸다. 시작점으로부터 각각의 depth + 1을 늘려나가면서 몇촌 (즉, 촌수는 depth를 나타낸다.) DFS, BFS로 해당되는 값을 전파하면서 늘려나간다. 두가지 방법으로 풀이를 진행하였다. isCheck변수에 해당되는 depth를 저장시키고 저장된 값이 0일경우 -1, 그게
1. BOJ 16953 문제 1.1. 컴퓨팅적 사고 거꾸로 생각하거나 dfs로 풀기 10^9로는 모든경우를 체크할 수 없다. 다른방법을 구해야한다. bfs같은경우는 모든 경우를 구하는것은 가까운것만 탐색하므로 bfs로 처리할 수 있다. 범위가 10^9이기때문에 int의 범위로는 모두 처리하지 못한다. 따라서 Long으로 처리하니까 정답을 도출하였다.
1. 삼성 SW 역량테스트 백준 주사위 굴리기 14499문제 1.1. 아이디어 N*M의 상하좌우의 지도가 주어진다. 주사위 전개도를 살펴보면 다음과 같다. 2(top) 4(left) 1(up) 3(right) 5(bottom) 6(down) 해당 문제에서는 다음과 같은 변수명으로 주사위 문제를 풀어볼 예정이다. 주사위의 문제 조건을 살펴보면 다음과
1. 백준 숫자판별하기 22101번 1.1. 컴퓨팅적 사고 하나의 그래프 클래스를 만들어서 모든 맵의 x,y좌표로 생성한다 DFS를 수행하여 모든맵의 x,y좌표를 순회한다. 종료조건은 cnt의 개수가 6개가 만족되면 종료한다. 총 4가지 방향으로 동서남북의 direction 변수로 핸들링을 진행한다. isCheckRange함수에 맞게 이동한 값이 범위
1. 삼성 SW 역량테스트 백준 사다리조작 15684문제 1.1. 컴퓨팅적 사고 n은 열의 개수, m은 가로선의 추가될 개수, h는 열의 개수입력을 받습니다. 그리고 가로선의 추가될 x,y좌표의 값을 체크를 하여 맵에 넣어주는데 조심해야할 부분이 있습니다. 저 같은경우에는 x,y의 좌표값이 들어왔을때 x,y의 좌표는 1로 놓고 x,y+1의 좌표는 2로
1. 문제 링크 삼성 SW 역량테스트 기출 백준 치킨배달 15686 2. 문제 조건 0은 빈 칸, 1은 집, 2는 치킨집이다. (2, 1)에 있는 집과 (1, 2)에 있는 치킨집과의 거리는 |2-1| + |1-2| = 2, (5, 5)에 있는 치킨집과의 거리는 |2-5| + |1-5| = 7이다. 따라서, (2, 1)에 있는 집의 치킨 거리는 2이다.
1. 문제 링크 삼성 SW 역량테스트 백준 스타트와 링크 15561 2. 컴퓨팅 사고 (1) N은 20까지 주어지므로 시간복잡도가 충분히 주어지므로 DFS를 통한 모든 경우를 구해주었다. 그리고 짝수인 팀원들을 구해야한다. (2) 가장중요한점은 팀을 어떻게 분리시킬 것인가를 잘 생각해야한다. 하나의 팀을 나누는 변수를 두어 스타트팀은 true, 링크팀은