분류 전체보기

기타/코딩테스트

[Python] 프로그래머스 - 의상

1. 문제정보 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 조합을 이용한 풀이를 우선으로 생각했다. 주어진 의상의 종류가 n가지일 때 리스트에 담고 1개씩 입을 때, 2개씩 입을 때...n개씩 입을 때 모든 조합을 구한 후 종류별 의상의 수를 가지고 전체 경우의 수를 계산하였다. 하지만 결과는 일부 케이스에서 시간초과가 발생했다. 다른 분들의 풀이를 보니 경우의 수를 이용하여 해결한 분들이 많았다. 예를들어 A종류 3개, B종류 ..

기타/기타

윈도우 환경에서 homebrew 설치하기

Homebrew란 MacOS용 패키지 관리 애플리케이션으로 터미널에서 명렁어를 실행하는 것만으로 패키지 설치, 삭제 등이 가능하다. 이러한 homebrew를 윈도우에서 사용하기 위한 정리이다. 1. WSL(Windows Subsystem for Linux) 설치 WSL이란 리눅스용 윈도우 서브시스템으로 윈도우에서 리눅스의 명령어를 수행하도록 도와주는 시스템이다. 관리자모드로 PowerShell 실행 후 아래 명령어 입력하여 wsl을 설치한다. wsl --install wsl에는 기본적으로 우분투가 설치되는데 윈도우에서 사용하기 위해서는 제어판에서 Windows 기능 켜기/끄기에서 "Linux용 Windows 하위 시스템"을 활성화를 해야한다. 설정 이후 PC 재부팅이 필요한데 재부팅하면 우분투 계정을 생..

기타/자료구조, 알고리즘

[Python] 최대 공약수와 최소 공배수

주어진 두 수의 최대 공약수와 최소 공배수를 우선 각각의 수를 소인수분해를 해야한다. 소인수분해란 1보다 큰 자연수를 소수의 곱으로 표현한 것이다. # 소인수분해 (while문이 핵심) def factorization(n): result = [0]*n result[1] = 1 if n == 1: return result while n > 1: for i in range(2, n+1): if n % i == 0: result[i] += 1 n = n//i break return result 최대 공약수(GCD) 두 수의 공통된 약수 중 가장 큰 약수를 의미한다. 소인수분해 이후 공통된 소인수들이 있을 것인데 그 중 지수가 작은 값을 선택하여 곱하여 구한다. 최소 공배수(LCM) 두 수의 공통되는 배수 중 ..

기타/자료구조, 알고리즘

[Python] 순열(Permutation)과 조합(Combination)

순열 순열이란 서로 다른 n개중 r개를 선택하여 순서를 정해 나열할 수 있는 가짓수이다. 예를 들어 [A, B, C] 리스트가 있을 때 2개를 선택한 후 순서를 고려해서 나열할 수 있는 가짓수는 [(A,B), (A,C), (B, A), (B, C), (C, A), (C, B)] 총 6개이다. 순열 구현해보기 def permutation(arr, n): result = [] if n == 0: return [[]] elif n == 1: return [[i] for i in arr] elif n >= 2: for i in range(len(arr)): elem = arr[i] p = permutation(arr[:i] + arr[i+1:], n-1) for rest in p: result.append([e..

lazy man
'분류 전체보기' 카테고리의 글 목록 (8 Page)