목록알고리즘 (72)
짱이 될거야
https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 1. BFS from collections import deque import sys input = sys.stdin.readline def bfs(si, sj): # 초기값 q = deque() q.append((si, sj)) arr[si][sj] = 1 count = 1 # 반복 조건 while q: ci, cj = q.popleft() for di, dj in [(-1,..
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 1. BFS from collections import deque import sys input = sys.stdin.readline def bfs(si, sj): # 초기값 q = deque() q.append((si, sj)) house = 1 # 각 단지내 집의 수 village[si][sj] = 0 visited[si][sj] = 1 while q: ci, cj = q.popleft() fo..
from collections import deque import sys input = sys.stdin.readline def bfs(si, sj, total): global result # 초기조건 q = deque() q.append((si, sj)) visited[si][sj] = 1 arr[si][sj] = 2 # 반복조건 while q: ci, cj = q.popleft() for di, dj in [(-1, 0), (1, 0), (0, -1), (0, 1)]: ni, nj = ci+di, cj+dj if 0
https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 1. BFS import sys input = sys.stdin.readline def bfs(v): q = [v] while q: v = q.pop() for w in adj[v]: if relation[w] == 0: relation[w] = relation[v] + 1 q.append(w) N = int(input()) # N: 전체 사람의 수 a, b = map(int,..
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 이 문제는 지문을 잘 읽어야 하는데, 우선 숫자의 순서는 변경하면 안된다. 문제를 보자마자 떠오른 방법은 순열이었는데 위 조건을 미처 보지 못해서 계속해서 헤맸다. 두 번째로 주의해야 할 것은 음수일 때 나눗셈을 하는 경우이다. print(-6 // 2)를 했더니 -3으로 결과가 잘 나오길래 따로 조건을 달아주지 않았었는데, 그렇게 하면 예시..
https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(A,B): answer = 0 A.sort() B.sort(reverse=True) for i in range(len(A)): answer += (A[i] * B[i]) return answer