https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr def solution(arr): answer = [] answer.append(arr[0]) for i in range(1, len(arr)): if arr[i] != arr[i-1]: answer.append(arr[i]) return answer
https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr def solution(clothes): answer = 1 clothe = {} for i in range(len(clothes)): if clothes[i][1] not in clothe: clothe[clothes[i][1]] = 1 else: tmp = clothe[clothes[i][1]] tmp += 1 clothe[clothes[i][1]] = tmp for c in clothe: answer *= (clothe[c] + 1) answer -= 1 return answer
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr def dfs(computers, check, v): check[v] = 1 for i in range(len(check)): if check[i] == 0 and computers[v][i] == 1: dfs(computers, check, i) def solution(n, computers): answer = 0 check = [0] * n for ..
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 �� programmers.co.kr def solution(answers): answer = [] s1 = [1, 2, 3, 4, 5] s2 = [2, 1, 2, 3, 2, 4, 2, 5] s3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] res = [0, 0, 0] for i in range(len(answers)): ans = answers[i] if (s1[i % 5] =..
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr def solution(begin, target, words): if target not in words: return 0 answer = 0 start = [begin] while(len(words) != 0): for s in start: tmp = [] for word in words: cnt = 0 for i i..
https://www.acmicpc.net/problem/10026 10026번: 적록색약 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G( www.acmicpc.net from collections import deque # 상, 하, 좌, 우 dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] def bfs(x, y): q.append([x, y]) check[x][y] = 1 while(q): x, y = q.popleft() for i in range(4): nx, ny = x + dx[i], y + dy[i] if 0
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 100)이 주어지고 둘째 줄에는 버스의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 � www.acmicpc.net import sys # Inf의 범위가 작으면 틀릴 수 있으니 주의!! Inf = 100000000 n = int(sys.stdin.readline()) m = int(sys.stdin.readline()) d = [[Inf] * n for _ in range(n)] for i in range(m): a, b, c = map(int, sys.stdin.readline..
https://www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net import sys N = int(sys.stdin.readline()) s = [] check = [0] * N def dfs(v): for i in range(N): if check[i] == 0 and s[v][i] == 1: check[i] = 1 dfs(i) for i in range(N): s.append(list(map(int, sys.stdin.readline().split()))) for i in range(N): dfs(..