일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 운영체제
- 킥스타트
- 코딩
- 프로그래머스
- google coding competition
- 그래프
- 동적프로그래밍
- BFS
- 구글 킥스타트
- dp
- linux
- DFS
- 백준
- 코딩테스트
- 브루트포스
- 프로그래밍
- 알고리즘
- 순열
- 딥러닝
- nlp
- kick start
- 코딩 테스트
- AI
- CSS
- OS
- 리눅스
- 네트워크
- 동적 프로그래밍
- PYTHON
- 파이썬
- Today
- Total
목록파이썬 (136)
오뚝이개발자
프로그래밍 언어는 메모리 관리를 어떻게 할까? 프로그래밍 언어는 메모리 관리를 어떻게 하는 것일까? C나 C++ 같은 저수준의 언어는 malloc(), free()와 같이 메모리를 직접적으로 관리하는 함수들을 사용해 메모리 할당과 해제를 한다. 그런데 python, JS, C# 등의 언어를 사용할 때를 생각해보면 개발을 하는 우리는 "메모리"에 대해 생각하지 않고 코드를 짠다. 현대적인 언어로 오면서 메모리 관리는 점차 사람이 하지 않는 쪽으로 바뀌었다. 하지만 분명히 메모리가 어떠한 방식으로든 할당이 되어야 할 것이고, 이를 사람이 신경쓰지 않는다면 누군가가 대신해 주고 있다는 뜻이다. 특히, 파이썬에서 이를 해주는 것이 바로 가비지 콜렉터(Garbage Collector, 줄여서 GC)이다. 메모리를..
문제 https://codingcompetitions.withgoogle.com/kickstart/round/00000000004361e3/000000000082b813 Kick Start - Google’s Coding Competitions Hone your coding skills with algorithmic puzzles meant for students and those new to coding competitions. Participate in one round or join them all. codingcompetitions.withgoogle.com 나의 풀이 Arithmetic sequence인지 아닌지 검사하는 방법은 쉬우니 중요한 가운데 원소의 선택에 대해서만 고민하면 된다. 가운데..
문제 https://codingcompetitions.withgoogle.com/kickstart/round/0000000000435bae/0000000000887c32 Kick Start - Google’s Coding Competitions Hone your coding skills with algorithmic puzzles meant for students and those new to coding competitions. Participate in one round or join them all. codingcompetitions.withgoogle.com 나의 풀이 자신의 집 앞에 쓰레기통이 없는 경우 간단하게 두 가지 경우만 존재한다. 좌측 방향의 가장 가까운 쓰레기통을 선택하거나 우측 방향..
assert assert는 뒤에 오는 조건이 False면 AssertionError를 발생시킨다. >>> a = 3 >>> assert a == 2 #결과 Traceback (most recent call last): File "", line 1, in AssertionError 다음과 같이 assert 조건, "에러문"의 형식으로 사용할 수도 있다. def test(t): assert type(t) is int, '정수 아닌 값이 있네' for i in lists: test(i) #결과 AssertionError: 정수 아닌 값이 있네 즉, assert는 가정설정문이라고 해서 특정 값이나 값의 범위를 보장하기 위해 프로그램 중간중간에 사용한다. 예컨대, 어떤 함수는 정수값만을 input으로 받아야 한다..
문제 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 나의 풀이 양끝에서부터 하나씩 이동시켜가면서 서로 문자를 비교해보면 된다. 왼쪽에서 오른쪽으로 가는 포인터를 l, 오른쪽에서 왼쪽으로 가는 포인터를 r이라고 하자.(two pointer 방식) l = 0, r = len(a)-1로 초기화 해주고 a[l]과 a[r]을 서로 비교해준다. a[l] == a[r] -> l += 1, r -= 1 a[l] != a[r] -> print("no")하고 break 여기서..
문제 https://www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 나의 풀이 정규표현식을 사용하면 되는 문제이다. 약간 신경써야할 부분은 re의 match()함수가 아니라 fullmatch() 함수를 사용해야 한다는 점이다. match()의 경우 일치하는 부분문자열이 있는 경우 True를 return하지만 문제에서 요구하는 것은 문자열의 처음부터 끝까지 해당 정규표현식의 규칙을 가진 경우를 detection해야 한다. 따라서 fullmatch()..
python text.py라고 파이썬으로 작성된 파일을 실행시키려고 하는데 python3 버전으로 인식이 되도록 하고 싶을 때가 있다. 이럴 땐 alias라는 명령어를 사용하여 설정을 해주면 된다. 사용하는 python 버전 확인 간단히 커맨드 창에 python이라고 치면 된다. > python Python 2.7.17 (default, Apr 15 2020, 17:20:14) [GCC 7.5.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 위와 같이 나오면 기본 python 명령어가 python2 버전을 사용한다는 뜻이다. alias 명령어로 python3 버전을 기본 버전으로 설정하기 커맨드 ..
문제 https://leetcode.com/problems/3sum/ 3Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 나의 풀이 리트코드 풀이를 하다가 굉장히 재미있는 문제가 있어 가져와봤다. 문제는 간단하다. 리스트와 타겟이 주어지면 그 리스트의 3개의 원소의 합이 타겟과 같아지는 그룹을 return하는 문제다. 여기서 포인트는 단순히 3중 for문으로 구현하면 시간초과가 난다는 것이다. 다른 방법을 고안해야 하는데 그 풀이가 굉장히 흥미롭다. tw..