일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- PYTHON
- 킥스타트
- 네트워크
- AI
- BFS
- 프로그래밍
- google coding competition
- nlp
- 백준
- 운영체제
- 파이썬
- 딥러닝
- DFS
- 코딩
- 알고리즘
- kick start
- 코딩테스트
- 동적 프로그래밍
- dp
- CSS
- OS
- 브루트포스
- 동적프로그래밍
- 구글 킥스타트
- linux
- 프로그래머스
- 순열
- 코딩 테스트
- 그래프
- Today
- Total
목록분류 전체보기 (312)
오뚝이개발자
최근 개인적인 진로 문제로 이런저런 고민을 하던 날들이 반복되었다. 이랬던 적이 없던 것은 아니다. 일을 하기 시작하면 진로 고민은 없어질 것이라는 나의 예상은 일을 하면서 오히려 더 심해진 앞날에 대한 고민으로 보기 좋게 빗나가버렸다.^^ 고민에 빠진 사람의 생활패턴은 마치 정해진 수순이 있는 것 같다. 계속된 고민은 불안을 데려오고, 선택에 대한 압박감은 초조함을 데리고 왔다. 잠 들지 못하는 밤이 더 잦아졌고, 계속된 수면부족과 스트레스로 오히려 깨어있는 시간에 우울한 감정은 배가 되었다. 제대로 선택을 하지 못하는 날들이 많아지자, 나는 점차 일상생활에서의 작은 것들도 스스로 결정하지 못하게 되었다. 가령, 무엇을 먹을지와 같은 것도 말이다. 지금와서 돌이켜보면, 선택을 하지 못하는 순간이 지속되..
문제 https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 나의 풀이 단순히 두 배열의 합을 구해 일일히 비교하면서 합이 T가 되는지 구해보는 방식은 O(n^2m^2)만큼의 시간복잡도가 걸려서 통과되지 않는다. 연산시간을 줄여야 하는데 A의 부분합에 대한 dictionary를 만든 뒤 (T-B의부분합)이 A의 부분합 dictionary 내에 있는지 파악해 가짓수에 더해주..
문제 https://www.acmicpc.net/problem/2239 2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다 www.acmicpc.net 나의 풀이 백트래킹을 사용해서 탐색을 해주면 된다. 검사할 항목은 가로, 세로, 3x3 사각형 안에 사용된 숫자들이 무엇인지이다. 이를 c1, c2, c3에 기록해두고 겹치지 않는 숫자 candidate들을 하나씩 넣어보면서 조건에 위배되는지를 살펴보고 위배된다면 백트래킹으로 다시 값들을 복구하고 다음 후보 숫자를 넣어 탐색하면 된다. 코드 # https://www.acmicpc.net..
취직 혹은 이직은 누구에게나 힘든 일일 것이다. 나 또한 처음 취준을 하던 시기와 이직을 하던 시기에 많이 힘들었던 기억이 난다. 지금 생각해도 정말 돌아가고 싶지 않을 정도로. 시간이 지나고나서 든 생각은 누군가가 나에게 어떠한 마인드로 준비를 하면 되는지라던가 소소한 팁들을 알려주었다면 준비하는 기간이 조금은 더 짧아질 수도 있지 않았을까였다. 취업이나 이직을 준비하는 누군가에게 도움이 될까하는 마음으로 느꼈던 몇가지를 적어본다. 1. 되도록 많은 곳에 지원해라 취직은 결국 "전략" 싸움임을 인지하는 것이 중요하다. 주변에서 "딱 한군데만 지원했는데 운 좋게 붙었어요."와 같은 말을 들어본 적이 있을 것이다. 좀 배가 아프지만 채용이라는게 사실 그렇다. 나는 이 사실을 알기까지 굉장히 많은 시간이 걸..
문제 https://www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 나의 풀이 그냥 n개의 원소 중 임의의 3개를 뽑아서 합을 구하는 방식으로 하게 되면 시간복잡도가 O(n^3)까지 올라가게 된다. 따라서 투 포인터를 사용해서 O(n^2)으로 풀어야 통과할 수 있다. i를 0~n-2까지 순회하면서 left와 right를 바꿔주어야 한다. 아래 코드는 python으로는 시간초과가 나왔고 pypy로 통과하였다. 서치를 해보니 대부분의 해답들..
문제 https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 나의 풀이 전형적인 유니온 파인드(union find) 문제이다. 유니온 파인드 알고리즘은 그래프가 사이클을 갖는지 여부를 판별하는 알고리즘이다. 약간 헷갈렸던 부분이 사이클을 판별하기 위해선 연결하려는 두 노드 x,y가 같은 부모를 갖는지를 먼저 확인하고 unionParent 함수를 call해야 된다는 점이다. 처음에 unionParent를 먼저 실행하고 isSameParent를 실행..
아나콘다(Anaconda)를 사용하다보면 같은 환경을 다른 머신에서도 사용하고 싶거나, 같은 머신에서 비슷한 환경을 복제한 뒤 이런저런 패키지를 추가, 삭제하여 사용하고 싶은 경우가 있다. 이를 위한 기능이 콘다에 있다. 즉, 일일히 패키지를 설치하지 않아도 된다. Step #1 : Conda env를 yaml 파일로 export 하기 아래와 같이 자신이 복제하고자 하는 콘다 가상환경을 activation 시킨 뒤 conda env export 명령어를 사용해서 해당 콘다 환경을 yaml 파일로 저장해주면 된다. conda activate myconda# 만약 가상환경 이름이 myconda라면 conda env export > myconda.yaml 두번 째 명령어를 실행하면 yaml 파일에 자신의 콘다..
아나콘다(Anaconda)는 AI나 데이터 과학 패키지를 많이 포함하고 있다. 아나콘다를 통해 이들을 일괄적으로 편리하게 설치할 수 있다. 이 글에선 리눅스에 아나콘다를 설치하는 방법을 소개한다. Step #1 : 아나콘다 사이트에 접속해 installer 다운로드 https://www.anaconda.com/products/distribution Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 위 공식 사이트에 접속해서 자신의 OS에..