Algorithm
[Programmers] 네트워크 - Java
Level 3 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 풀이 DFS 문제 자기자신을 방문처리하고, 연결된 노드이면서 방문하지 않은 노드의 인덱스를 다시 재귀함수의 매개변수로 주어 모든 연결된 노드들을 dfs로 방문한다. 재귀가 끝날 때마다 count(내 코드에선 answer변수)를 올려 네트워크의 개수를 센다. 코드 class Solution { public void dfs(int index, int[] visited, int[][] computers) { visited[index] = 1;..
[Programmers] 타겟넘버 - Java
Level 2 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 문제 풀이 DFS 문제 값을 빼고 재귀함수에 넣고, 값을 더해서 재귀함수에 넣어준다. n이 주어진 숫자의 개수와 같아지면 target과 같은지 확인하고 맞으면 개수+1을 해준다. 코드 class Solution { ..
[Baekjoon] 14499번 : 주사위 굴리기 - Python
Gold 4 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 1시간 조금 넘게 소요 문제를 잘 읽자 ㅡㅡ 문제 풀이 구현 문제 바닥을 향하는 면에 적힌 값을 기준으로 각 주사위 면에 적힌 값을 리스트로 표현한다. 순서는 [바닥, 동, 서, 북, 남, 하늘] 이렇게 될 것이다. 주사위를 굴리면 진행 방향의 면이 바닥이 되고 그 반대 면이 하늘을 향하는 면이 된다. 그리고 원래 바닥을 향하던 면이 진행 방향의 반대방향이 되고, 하늘을 향하던 면이 진..
[Baekjoon] 21610번 : 마법사 상어와 비바라기 - Python
Gold 5 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 문제 풀이 구현 문제 문제에서 제시한 조건대로 차례차례 구현하면 되는 문제였다. cloud 리스트를 따로 만들어 구름의 위치를 다룰 수 있게 했다. 코드 from copy import deepcopy n, m = map(int, input().split()) map_ = [] for _ in range(n): map_.append(list(map(int, input().split()))) cloud = [[0] * n for _ in range..