Algorithm
-
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com - 문제 설명 N마리의 지렁이가 있다. (N은 짝수) 지렁이를 2마리씩 소개팅을 시켜준다. 소개팅을 시키기 위해선 한 지렁이가 다른 지렁이에게 이동해야한다. 지렁이는 2차원 평면에서 이동하며 점 A에 있는 지렁이가 점 B에있는 지렁이에게 이동했다면 벡터 AB가 된다. 모든 지렁이를 매칭시킨 후 나온 벡터를 모두 더한 후 그 벡터의 크기를 구한다. 벡터의 크기 |V| = |(x, y)| = x*x + y*y 주의사항 각 벡터별 크기의 합을 구하는 것이 아닌 모든 벡터를 더한 후 (방향값 포함) 남은 하나의 벡터의 크기를 구하는 것 - 접근 방법 예시의 입출력을 확인..
[SW Expert Academy] 1494 사랑의 카운슬러 (Python)SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com - 문제 설명 N마리의 지렁이가 있다. (N은 짝수) 지렁이를 2마리씩 소개팅을 시켜준다. 소개팅을 시키기 위해선 한 지렁이가 다른 지렁이에게 이동해야한다. 지렁이는 2차원 평면에서 이동하며 점 A에 있는 지렁이가 점 B에있는 지렁이에게 이동했다면 벡터 AB가 된다. 모든 지렁이를 매칭시킨 후 나온 벡터를 모두 더한 후 그 벡터의 크기를 구한다. 벡터의 크기 |V| = |(x, y)| = x*x + y*y 주의사항 각 벡터별 크기의 합을 구하는 것이 아닌 모든 벡터를 더한 후 (방향값 포함) 남은 하나의 벡터의 크기를 구하는 것 - 접근 방법 예시의 입출력을 확인..
2023.03.02 -
16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net - 문제 설명 N * N 크기의 땅이 있고, 각 칸은 각각의 나라이며 나라마다 사람이 살고있다. L, R 을 입력받고, 각 칸의 나라와 인접한 나라의 인구수 차이가 L 이상 R 이하일때 하루동안 국경이 열린다. 땅에서 열릴 수 있는 국경이 모두 열렸다면 인구이동을 한다. 인구는 인접한 땅에서 국경이 열린 나라들끼리 모두 균등하도록 이동한다. (소수점은 버림) 며칠이 지나면 더이상 인구 이동이 불가능한지 구해보자 - 입출력 예시 인구 이동 과정 국경이..
[백준] 16234 인구이동 (BFS) - Python16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net - 문제 설명 N * N 크기의 땅이 있고, 각 칸은 각각의 나라이며 나라마다 사람이 살고있다. L, R 을 입력받고, 각 칸의 나라와 인접한 나라의 인구수 차이가 L 이상 R 이하일때 하루동안 국경이 열린다. 땅에서 열릴 수 있는 국경이 모두 열렸다면 인구이동을 한다. 인구는 인접한 땅에서 국경이 열린 나라들끼리 모두 균등하도록 이동한다. (소수점은 버림) 며칠이 지나면 더이상 인구 이동이 불가능한지 구해보자 - 입출력 예시 인구 이동 과정 국경이..
2023.03.01 -
14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net - 문제 설명 연구실에서 바이러스가 유출되었는데 바이러스가 퍼지기 전에 3개의 벽을 세워 바이러스의 침입을 막는다. 바이러스가 가장 적게 퍼지도록 했을 경우의 안전구역 갯수를 반환해보자 - 접근 방법 바이러스가 없는 입력이 0인 구역에서 3개를 뽑아 벽을 세우는 모든 경우의 수를 구한다. 경우의 수마다 3개의 벽을 세웠을 때 안전구역의 개수를 구해 최댓값을 구한다. - 입출력 예시 - 코드 from itertools import combinations from collecti..
[백준] 14502 연구소(BFS) - Python14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net - 문제 설명 연구실에서 바이러스가 유출되었는데 바이러스가 퍼지기 전에 3개의 벽을 세워 바이러스의 침입을 막는다. 바이러스가 가장 적게 퍼지도록 했을 경우의 안전구역 갯수를 반환해보자 - 접근 방법 바이러스가 없는 입력이 0인 구역에서 3개를 뽑아 벽을 세우는 모든 경우의 수를 구한다. 경우의 수마다 3개의 벽을 세웠을 때 안전구역의 개수를 구해 최댓값을 구한다. - 입출력 예시 - 코드 from itertools import combinations from collecti..
2023.02.22 -
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net - 문제 설명 M * N 의 토마토 창고가 입력으로 주어진다. 창고 속에는 각각 익지 않은 토마토(0 입력), 익은 토마토(1 입력), 토마토가 없는 빈칸(-1 입력)이 주어진다. 익은 토마토는 안익은 토마토에게 영향을 주어 하루가 지나면 익은 토마토에 인접한 덜익은 토마토는 다음날 익은 토마토가 된다. 창고 속 안익은 토마토가 모두 익을때까지 걸리는 날짜를 구해보자. - 입출력 ..
[백준] 7576 토마토(BFS) - Pythonhttps://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net - 문제 설명 M * N 의 토마토 창고가 입력으로 주어진다. 창고 속에는 각각 익지 않은 토마토(0 입력), 익은 토마토(1 입력), 토마토가 없는 빈칸(-1 입력)이 주어진다. 익은 토마토는 안익은 토마토에게 영향을 주어 하루가 지나면 익은 토마토에 인접한 덜익은 토마토는 다음날 익은 토마토가 된다. 창고 속 안익은 토마토가 모두 익을때까지 걸리는 날짜를 구해보자. - 입출력 ..
2023.02.21 -
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 - 문제 설명 복도에 떨어진 음식물 중 가장 크기가 큰 음식물의 크기를 구하는 문제이다. 2차원 배열 속에서 음식물이 서로 붙어있는 경우 한덩이의 음식물로 보고 크기를 구한다. 첫째 줄에 복도의 세로길이 N, 가로길이 M, 음식물 쓰레기 개수 K 를 입력받는다. 이후 K개의 줄에 음식물의 위치를 입력받는다. - 입출력 예시 DFS와 BFS방식 둘다 풀이가 ..
[백준] 1743 음식물 피하기(DFS) - Pythonhttps://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 - 문제 설명 복도에 떨어진 음식물 중 가장 크기가 큰 음식물의 크기를 구하는 문제이다. 2차원 배열 속에서 음식물이 서로 붙어있는 경우 한덩이의 음식물로 보고 크기를 구한다. 첫째 줄에 복도의 세로길이 N, 가로길이 M, 음식물 쓰레기 개수 K 를 입력받는다. 이후 K개의 줄에 음식물의 위치를 입력받는다. - 입출력 예시 DFS와 BFS방식 둘다 풀이가 ..
2023.02.19