프로그래머스 | 네트워크 (Python)
·
ALGORITHM
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr dfs로 풀어야겠다는 생각은 바로 들었는데 인접리스트랑 dfs 구현 중 자잘한게 생각이 안나서 생각보다 풀이시간이 많이 걸렸다. 내 코드def dfs(graph, start, visited): visited.append(start) for node in graph[start]: if node not in visited: dfs(graph, node, visited) return visited def solution(n, compu..
프로그래머스 | 키패드 누르기 (Python)
·
ALGORITHM
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내 코드def solution(numbers, hand): answer = '' # 키패드 숫자들의 좌표를 정의 keypad = { 1: (0, 0), 2: (0, 1), 3: (0, 2), 4: (1, 0), 5: (1, 1), 6: (1, 2), 7: (2, 0), 8: (2, 1), 9: (2, 2), '*': (3, 0), 0: (3, 1), '#': (3, 2) } curr_left = keypad['*'] curr..
프로그래머스 | 스킬트리 (Python)
·
ALGORITHM
GitHub - gilbutITbook/080337Contribute to gilbutITbook/080337 development by creating an account on GitHub.github.com여기 정리된 것들을 참고하여 구현 문제들을 풀이하고 있다.  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음에는 필터링 거는 것에 대해 생각하지 못해서 자꾸 인덱스 에러가 났다.. 내 코드def solution(skill, skill_trees): answer = 0 # 그러면 skill_trees의 각 요소를 돌면서 for skil..
프로그래머스 | 타겟 넘버 (Python)
·
ALGORITHM
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 알고리즘 고득점 키트 dfs/bfs 유형의 문제인데 그냥 combinations 써서 풀었다.. 내 코드from itertools import productdef solution(numbers, target): count = 0 length = len(numbers) for ops in product('-+', repeat=length): tmp = 0 for i, op in enumerate(ops): if op == '-': ..
어서와! 자료구조와 알고리즘은 처음이지? | 6강, 7강, 8강
·
ALGORITHM
6강 알고리즘 복잡도(Complexity of Algorithms)시간 복잡도(Time Complexity)문제의 크기와 이를 해결하는 데 걸리는 시간 사이의 관계 공간 복잡도(Space Complexity)문제의 크기와 이를 해결하는 데 필요한 메모리 공간 사이의 관계 평균 시간 복잡도(Average Time Complexity)임의의 입력 패턴을 가정했을 때 소요되는 시간의 평균 최악 시간 복잡도(Worst-case Time Complexity)*가장 긴 시간을 소요하게 만드는 입력에 따라 소요되는 시간 Big-O Notation점근 표기법의 하나, 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현 1) 선형 시간 알고리즘 - O(n)- 선형 탐색 알고리즘 2) 로그 시간 알고리즘 - O(logn)..
어서와! 자료구조와 알고리즘은 처음이지? | 1강, 2강, 3강, 4강, 5강
·
ALGORITHM
1강자료구조와 알고리즘을 공부해야하는 이유: 문제를 시간내에 해결하기 위해서는 적절한 자료 구조와 알고리즘을 선택해 사용해야하기 때문 2강 선형 배열 (Linear Arrays)배열은 보통 같은 타입의 데이터이 순서대로 늘어져 있는 것을 의미함파이썬에서는 배열을 리스트로 표현 - 배열(리스트) 연산1. 원소 덧붙이기: list명.append(추가할 요소)2. 끝에서 꺼내기: list명.pop() -> return 마지막 요소=> 빠르게 할 수 있는 일, 리스트의 길이와 무관 (상수 시간, O(1) ) (3) 원소 삽입하기: list명.insert(index 위치, 추가할 요소)(4) 원소 삭제하기: del(list명[index])(5) 원소 탐색하기: list명.index(찾고자 하는 요소) return..
프로그래머스 | 2022 KAKAO BLIND RECRUITMENT | 신고 결과 받기 (Python)
·
ALGORITHM
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내 코드def solution(id_list, report, k): # 각 유저의 신고 결과를 저장할 리스트 (메일 받은 횟수) answer = [0] * len(id_list) # 각 ID별로 신고당한 횟수를 카운트 reported_by_ID = [0] * len(id_list) # 유저 ID를 노드로 가지는 가중치가 없는 단방향 그래프 # 인접 리스트를 중복 없이 처리하기 위해 set 사용 report_dict = {reporter: set() for rep..
프로그래머스 | 2023 KAKAO BLIND RECRUITMENT | 이모티콘 할인행사
·
ALGORITHM
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내코드from itertools import productdef solution(users, emoticons): answer = [0,0] rates = [10, 20, 30, 40] # 적용 가능한 모든 할인율이 담긴 리스트 생성 discount_rates = list(product(rates, repeat=len(emoticons))) # 모든 할인율 경우의 수를 하나씩 적용해보면서 for discount_rate in discount_rates: ..