전체 글 144

[프로그래머스] 위장 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import combinations def solution(clothes): cb = [] tmp = [] for i in range(len(clothes)): tmp.append(clothes[i][1]) for i in range(len(set(tmp))): cb.append(list(combinations(tmp,i))) if len(set(tmp)) == 1: r..

Algorithm/Problems 2022.11.02

[프로그래머스] 전화번호 목록 Python

https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 짠 코드 😥 def solution(phone_book): answer = True sorted(phone_book) for i in range(len(phone_book)): for j in range(1, len(phone_book)): if len(phone_book[i]) < len(phone_book[j]): if phone_book[i] in phone_book[j][:len(ph..

Algorithm/Problems 2022.10.28

[프로그래머스] 폰켓몬 python

https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import numpy as np def solution(nums): num = np.unique(nums) if (len(nums)/2) len(num): answer = len(num) return answer 엉망진창 내가 짠 코드😥 numpy 모듈 중 unique() 함수를 사용하여 주어진 배열에서 고유값만 리턴해주었다. 이때, 내가 데려갈 수 있는 폰켓몬 수가 더 크다면 고유값의 수를 리턴..

Algorithm/Problems 2022.10.26

[프로그래머스] 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(participant, completion): answer='' for idx, p in enumerate(participant): if p in completion: continue else: answer = participant[idx] return answer 아무생각 없이 짠 내 코드😥 이름이 같은 사람이 여러명 있고 그 중 한사람만 완주하는 경우에는 이 코드가 적용..

Algorithm/Problems 2022.10.26

이진 탐색 알고리즘

순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 이진 탐색: 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 (시작점, 끝점, 중간점을 이용해 탐색 범위를 설정한다.) 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산횟수는 log2N에 비례한다. 즉, 시간 복잡도는 O(logN)을 보장한다. # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보..

Algorithm/algorithm 2022.08.24

[Error] NoPermissions (FileSystemError): Error: EPERM: operation not permitted, open

관리자권한이 필요한 폴더내에 node.js 프로젝트 폴더가 있어서 생기는 에러라고 한다.. (파일 삭제는 됐는데 생성하려니까 저런 문구가 뜨면서 파일 생성이 되지 않는다...) 검색해보니, powershell로 캐시 삭제를 하는 방법도 종종 나오던데,, 해결되지 않았다.😥 cmd를 관리자 권한으로 실행하고 해당 위치로 경로를 이동 후 아래 명령어를 실행한다. code 폴더명 or code (처음에 저렇게 vscode를 실행시켰는데 되지 않았다.. 역시 껐다 키는 것이 방법이 될 때가 맞는건가..) 출처 url: https://pika-chu.tistory.com/229 [Error] EPERM: operation not permitted 관리자권한이 필요한 폴더내에 node.js 프로젝트 폴더가 있어서 ..

Project/Intro 2022.08.23

[프로그래머스] K번째 수

문제 url: https://school.programmers.co.kr/learn/courses/30/lessons/42748?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(array, commands): answer = [] for com in commands: arr = array[com[0]-1:com[1]] arr.sort() answer.append(arr[com[2]-1]) return answer def solution(array, commands): return list(map(lamb..

Algorithm/Problems 2022.08.21

정렬 알고리즘 [선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬]

1. 선택 정렬 (selection sort) 첫 번째 값을 두 번째 값부터 마지막 값까지 차례대로 비교해 가장 작은 값을 찾아 첫 번째 값과 자리 변경하고, 두 번째 값을 세 번째 값부터 마지막 값까지 차례대로 비교해 가장 작은 값을 찾아 두 번째 값과 자리 변경.. 이 과정을 반복하며 정렬을 수행한다. 시간복잡도 O(N^2) array = [7,5,9,0,3,1,6,2,4,8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j # 스와프 array[i], array[min_index] = array[min_i..

Algorithm/algorithm 2022.08.16

[프로그래머스] 체육복 (탐욕법 Greedy)

문제 url: https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n, lost, reserve): # 오름차순으로 정렬 lost.sort() reserve.sort() # 차집합을 이용해 여벌옷이 있는데 도난당했을 경우 제외 new_lost = set(lost) - set(reserve) new_reserve = set(reserve) - set(lost) for r in new_reserve: if r - 1 in new..

Algorithm/Problems 2022.08.16

[백준] 2675번 문자열 반복

문제 링크: https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net n = int(input()) for i in range(n): str = input().split() list_s = list(str[1]) num = int(str[0]) # 각 문자 반복 횟수 for j in range(len(list_s)): for k in range(num): print(list_s[j], end="") print() 문자열이 입력된 것을 list로..

Algorithm/Problems 2022.08.11