프로그래머스문제정리 & Python잡다한것
-
프로그래머스[Python] - 괄호변환, 예상 대진표, 뉴스 클러스터링, 튜플프로그래머스문제정리 & Python잡다한것 2021. 7. 12. 16:11
괄호 변환 문제 url : https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 내용 : 균형잡힌 괄호 문자열을 올바른 괄호 문자열로 변환하는 과정 알고리즘 : 단순 구현, 스택을 이용한 문자열 판별 예상 대진표 문제 url : https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 ..
-
Python 백준 2252 - 줄 세우기(위상 정렬)프로그래머스문제정리 & Python잡다한것 2021. 6. 4. 00:55
위상 정렬(Topological Sorting) 조건 : Cycle 이 없는, 유향 그래프에 대해서 정렬을 수행한다. (DAG) 문제 풀이 순서 1. 그래프를 구현한다. -> list형태로 구현, 무방향 그래프(양방향 그래프)가 아닌 유방향 그래프로 나타낸다. 2. Indgree(노드에 들어가는 진출 차수)를 그래프를 표현할때 같이 배열로 설정해 놓는다. 3. indgree 가 0 인 것을 queue에 넣는다. 그리고 탐색을 시작한다.(어짜피 indgree가 같은 것은 순서에는 상관이 없을 것이다.) 4. queue에서 하나를 빼고 해당 값을 결과 List에 넣는다. 본인과 연결된 Node의 indgree 값을 하나 빼준다. -> edge를 지우는 것을 의미한다. 5. indgree가 0이 되는 Node..
-
Python numpy 함수 np.dot() 가 동작하는 내부 원리프로그래머스문제정리 & Python잡다한것 2021. 5. 19. 21:17
np.dot() vectorization을 사용하기 위해서 numpy 라이브러리에서 제공하는 dot()을 분석해 보았다. 공식 문서 : https://numpy.org/devdocs/reference/generated/numpy.dot.html 사용방법 : numpy.dot(a, b, out = None) numpy의 array 객체를 곱할 때 사용한다. 1차원 끼리의 곱 : 각 자리수 끼리 곱해서 합을 구한다.(내적) 2차원 끼리의 곱 : 일반적 행렬의 곱셈을 수행한다. 한쪽이 scalar 값 : 곱셈과 동일한 기능을 한다. Paramters a, b : array 를 의미 out : ndarray(optional) 여기에 변수를 지정하면 반환될 때 값을 저장할 수 있다. 원리 일반적으로 Numpy의 ..
-
가장 큰 수 - 프로그래머스[Level 2], 코드 비교하기프로그래머스문제정리 & Python잡다한것 2021. 5. 13. 00:25
문제 [1,2,3,4,5,6] 같은 int 형 list 가 들어왔을때, 모두 이어 붙혔을 때 가장 큰 수를 찾는 단순한 문제 시도 처음에는 단순하게 조합을 구하고 거기서 가장 큰 수를 찾으면 되겠다, 라고 생각했으나 가만 생각해보면 모든 조합을 구할때 원소가 100,000개라면 시간 복잡도가 난리날 것으로 예상했다. 참고 1 2 3 from itertools import permutations permutations(numbers, i) #i 는 몇개를 가지고 조합을 할 지 결정 cs 역시나 시도해본 결과, 전부 시간 초과가 발생했다 :) 그래서 두번째 시도를 했다. 생각한 알고리즘을 설명하자면, 각 원소마다 앞에 있는 값을 비교해 가면서 같으면 다음 원소를 비교하고, 다를 때 정렬을 시켜주는 식으로 내..
-
Python ASCII 값 출력하기 (백준 11654)프로그래머스문제정리 & Python잡다한것 2020. 12. 31. 12:16
Python 에서 문자를 Ascii 값으로 변환하여 출력하기 아주 간단하게 ord() 함수를 사용하면 실행이 되는 것을 볼 수 있다. 단, 문자 하나를 변환해 주는 것이기 때문에 list 같은 여러개 값을 변환시키고 싶을 때는 for문을 이용한다. ex) [ord(x) for x in list] Errors 이렇게 symbol이라는 list를 넣어줄 때는, 에러가 발생하는 것을 확인할 수 있다. 에러 내용을 보면 ord() 함수는 length 1을 원하는 것을 확인 마찬가지로 int값을 바로 넣어줄 때도 에러가 생기는 것을 확인했다. 따라서 chr()로 type casting을 진행후 처리 출력 예시 1 2 3 4 5 6 7 8 9 10 11 12 import sys symbol = sys.stdin.r..
-
Python 16,2,8진수에서 10진수 변환,10진수에서 16,2,8진수(진수 변환)프로그래머스문제정리 & Python잡다한것 2020. 9. 14. 11:20
1. 내가 생각한 코드 무식한 방법이지만 단순히 변환하는 알고리즘을 짜야하는 줄 알고 스스로 코드를 작성해 보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import sys sixt_num = sys.stdin.readline() result = 0 index = len(sixt_num)-2 for i in range(0,len(sixt_num)-1): if sixt_num[i] =='A': result += 10*(16**index) elif sixt_num[i] =='B': result += 11*(16**index) elif sixt_num[i] =='C': result += 12*(16**index) elif sixt_num[i..
-
Python 입력- readline함수(코딩테스트)프로그래머스문제정리 & Python잡다한것 2020. 9. 14. 00:21
input()함수만 알고 있었는데 readline()함수를 사용하면 실행 시간을 많이 줄일 수 있다고 해서 남겨놓는다. 1. import sys a = list(sys.stdin.readline().split()) // a라는 list에는 내가 가로로 넣은 입력 값을 split() 하여 str형태의 원소들로 담게 된다. 2. import sys a,b,c = map(str,sys.stdin.readline().split()) 이렇게 여러개의 원소를 한번에 받아서 넣고 싶을 때는 map()함수를 사용하면 편리하다. 여기서 map함수는 반드시 최소 두개의 arguments를 받아야 하기 때문에 하나만 쓰는 것은 에러가 난다. 또한 str 대신 int 를 사용하면 int 형으로 저장할 수 있기 때문에 자유로운..
-
Django 프로젝트 시작(Local Server 열기, 가상환경 설치)프로그래머스문제정리 & Python잡다한것 2020. 9. 6. 01:24
멋쟁이 사자처럼에서는 Django프레임워크를 사용하는데, 앞으로 Django에 대해서 모르는 부분과 공부한 내용을 가지고 하나씩 정리해놓아, 나중에 보기 편하도록 정리해 보겠습니다. 1. Visual Studio Code열기 우선 Visual Studio Code를 실행시켜 원하는 폴더를 새로 선택합니다. 2. Terminal을 열고 git bash창을 열어줍니다. 상단에 터미널을 클릭하시고 새로운 터미널을 생성합니다. git bash창을 생성하기 위해서는 1:powershell 부분을 누르시고 기본 셸을 git bash를 입력 후 선택합니다. 오른쪽에 +버튼을 누르면 새롭게 git bash 창이 생성이 됩니다. $ python -m venv newvenv(원하는 가상 환경 이름) 위의 명령어 입력을 하..