분류 전체보기 63

python 문법

인덴트(들여쓰기) python의 대표적인 특징으로써 공백 4칸을 원칙으로 한다. 네이밍 컨벤션 python의 변수명 네이밍 컨벤션은 자바와 달리, 각 언어를 밑줄( _ )로 구분하여 표기하는 스네이크 케이스를 따른다. (스네이크 케이스는 일반적으로 모두 소문자로 표기하지만, 경우에 따라 시작 문자는 대문자로도 표기한다.) 타입 힌트 python은 동적 타이핑 언어이지만, 타입을 지정할 수 있는 타입 힌트 기능이 존재한다. ex) def fn(a: int) -> bool: 하지만, 동적으로 할당될 수 있으므로, 문자열에 정수를 할당하는 등의 사용은 지양해야 한다. 리스트 컴프리헨션 python은 map, filter와 같은 함수형 기능을 지원하며, 람다 표현식도 지원한다. ex) >>> list(map(l..

Python/Algorithm 2022.06.04

백준 _ BFS ( Python / 파이썬)

DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 제한 조건 시간 제한 : 2초 메모리 제한 : 128MB 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS..

[programmers] LV 1. 자연수 뒤집어 배열로 만들기 (Python/파이썬)

문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5, 4, 3, 2, 1] ▶ my code def solution(n): answer = str(n)[::-1] ans = [] for i in answer: ans.append(int(i)) return ans ▶ 아이디어 문자열 뒤에 [::-1]을 붙여주면, 반대로 배열해줍니다.

[programmers] LV 1. 정수 내림차순으로 배치하기 (Python/파이썬)

문제 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 ▶ my code def solution(n): answer = str(n) answer = ''.join(sorted(answer, reverse=True)) return int(answer) ▶ 아이디어 str은 a.sort()를 사용할 수 없다. 그러나 sorted만을 사용하기에는 결과 값이 '8', '7', '3', '2', '1', '1' 이 될 것이다. 그렇기 때문에, ''.join..

[programmers] LV 1. 정수 제곱근 판별 (Python/파이썬)

문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. ▶ my code def solution(n): num = n**(1/2) if num == int(num): return (num+1)**2 else: return -1 ▶ my code ..

[programmers] LV 1. 제일 작은 수 제거하기 (Python/파이썬)

문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 · arr은 길이 1 이상인 배열입니다. · 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 arr return [4, 3, 2, 1] [4, 3, 2] [10] [-1] ▶ my code def solution(arr): if len(arr) == 1: return [-1] else: arr.remove(min(arr)) return arr ▶ 아이디어 rem..

[programmers] 스킬 체크 테스트 Leve.1 (Python/파이썬)

문제 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은 2..

[CS231n] 10강. Recurrent Neural Networks (RNN)

* 강의 자료는 아래에 있습니다!! 오늘은, RNN에 대해 알아보겠습니다. 일반적인 신경망들은 'one-to-one' 과 같은 모양을 가진다. 기본 신경망은 input layer, hidden layer, output layer를 거치는 구성을 갖는다. 이 'one-to-one' 모델은 input으로 fixed size인 이미지나 벡터를 입력받는다. 이 하나의 입력은 hidden layer를 거쳐서 fixed size를 가진 output vector로 내보내게 된다. 그러나 RNN에서는 one-to-one의 경우가 아닌, 위와 같은 one-to-many, many-to-one, many-to-many 로도 존재한다. 먼저, one-to-many의 예시로는 image captioning이 있다. 즉, 이 ..

NLP 2022.03.31