PYTHON/CODING TEST (10) 썸네일형 리스트형 [DFS/BFS] 타겟넘버 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/43165 해설내 풀이간단하게 내가 이 문제를 직접 풀면 어떻게 풀까 고민하다가 생각난 풀이이다.숫자가 여러개 들어있을 때 값을 빼줄지 더해줄지에 대한 모든 경우의 수를 미리 짜두고이에 대한 계산을 진행하는 코드이다나는 이를 구현하기 위해서 생각 났던 방식이 어짜피 더하기 빼기는 결국 -1, 1을 곱해서 더하는 과정이라고 생각했고, 이를 구현하기 위해 이진법으로 2의 숫자의 갯수 제곱만큼 늘려주고 이렇게 부여된 값을 각각 숫자에 더해주는 과정으로 진행했다 예를 들어서 문제에 나온 것 처럼 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있다.-1+1+1+1+.. [DFS/BFS] 연구소 문제링크https://www.acmicpc.net/problem/14502문제 이해하는 데도 상당히 오랜 시간이 걸린 문제이다0 갯수를 최대화 할 수 있도록 1을 3개 세워야하는 문제이다2가 탐색 방식으로 확장해나가는 구조라 생각하면 좀 더 쉽게 생각이 가능하다1이 나올때 까지 0을 2로 바꿔버린다 해설이 문제야 말로 컴퓨터가 인간보다 잘 푸는 유형의 대표적인 예라고 생각한다전체 조합을 모두 고려해야하는 상황에서는 dfs를 먼저 생각할 줄 알아야 한다 풀이과정3개의 벽을 골라 벽을 설치한다각 바이러스가 사방으로 퍼지는 것을 DFS/BFS로 계산하여 안전 영역을 구한다 전체 코드 dx = (-1, 0, 1, 0)dy = (0, 1, 0, -1)result = 0def is_valid_coord(x, y).. [DFS/BFS] 특정 거리의 도시 찾기 문제링크https://www.acmicpc.net/problem/18352 해설최단거리니까 bfs로 풀자최단 거리가 정확히 K인걸 찾아야 하므로 최단거리가 K 미만인 도시는 지워줘야 함from collections import deque# N, M을 공백으로 구분하여 입력받기n, m, k, x = map(int, input().split())graph = [[] for _ in range(n+1)]for i in range(m): start, end = map(int, input().split()) graph[start].append(end)distance = [-1] * (n+1)distance[x] = 0 # 출발 도시의 거리는 0으로 설정q = deque([x])cnt = 0while q.. [DFS/BFS] 미로 탈출 문제링크이것이 코딩테스트다 연습문제 해설from collections import dequedx = (-1, 0, 1, 0)dy = (0, 1, 0, -1)def is_valid_coord(x, y):return 0 총평/느낀점항상 같은 flow로 DFS/BFS 문제를 푸는 연습을 해봐야 겠다 출처이것이 코딩테스트다 연습문제 [DFS/BFS] 음료수 얼려 먹기 문제링크- 이것이 코딩 테스트다 에서의 예제 문제이다 해설# 한 덩어리 찾고 다음 덩어리 찾고 ...# DFS 로 생각하는게 맞을 듯?dy = (0, 1, 0, -1)dx = (-1, 0, 1, 0)def is_valid_coord(x, y): return 0 총평/느낀점생각하는 과정이 아직도 어렵게 느껴진다.모두 다 이 과정에서 크게 달라지지 않는다는 것을 기억하자 출처이것이 코딩 테스트다 [programmers] 카드 뭉치 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 * 포인터 관련 문제 같음 내 풀이def solution(cards1, cards2, goal): answer = 'Yes' n = 0 m = 0 for g in goal: if (g == cards1[n%len(cards1)]) or (g == cards2[m%len(cards2)]): if g == cards1[n%len(c.. [programmers] 외톨이 알파벳 문제 링크https://school.programmers.co.kr/learn/courses/15008/lessons/121683 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 내 풀이def find(string, char): for i, c in enumerate(string): if c == char: yield idef solution(input_string): answer = '' for i in sorted(list(set(input_string))): s = list(find(input_string, i)) .. [programmers] 개인정보 수집 유효기간 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이# 날짜를 일로 통일시킴def date2day(dt): return int(dt.split('.')[0]) * 12 * 28 + int(dt.split('.')[1]) * 28 + int(dt.split('.')[2])def solution(today, terms, privacies): answer = [] today = date2day(today) terms = .. 이전 1 2 다음