분류 전체보기
-
[WEEK01/DAY06] 백준 문제 : Moo 게임SW Jungle/TIL (Today I Learned) 2022. 9. 29. 03:03
https://www.acmicpc.net/problem/5904 5904번: Moo 게임 Moo는 술자리에서 즐겁게 할 수 있는 게임이다. 이 게임은 Moo수열을 각 사람이 하나씩 순서대로 외치면 되는 게임이다. Moo 수열은 길이가 무한대이며, 다음과 같이 생겼다. m o o m o o o m o o m o o o www.acmicpc.net 즐겁게 할 수 있는 술게임이라는 말에 혹해서 골랐다가, 생각보다 어려워서 애를 먹었다. 문제 설명 : m o o가 특정 규칙에 따라 나열된다. S(0) = "m o o" S(1) = "m o o m o o o m o o" S(2) = "m o o m o o o m o o m o o o o m o o m o o o m o o" 위와 같이 S(0)은 길이가 3인 수..
-
[WEEK01/DAY05] 백준 문제 : 연산자 끼워넣기SW Jungle/TIL (Today I Learned) 2022. 9. 28. 01:56
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 설명 : 100 이하의 자연수로 이루어진 수열 A[n](2 ≤ n ≤ 11) 이 주어진다. 그리고 그 수열 사이에 들어갈 연산자들이 주어진다. 주어진 수열과 연산자들을 가지고 만들어낼 수 있는 최댓값과 최솟값을 구하는 문제이다. 주어진 조건들이 몇개 더 있는데, 궁금하다면 위 링크에 들어가서 확인할 수 있다. 풀이 : 1. 가능한 연산자..
-
[WEEK01/DAY04] 백준 문제 : 수 정렬하기 3SW Jungle/TIL (Today I Learned) 2022. 9. 27. 01:44
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 이번 문제는 문제의 제한사항을 잘 확인해야 하는 문제였다. 파이썬에서는 길이가 1억(100,000,000)인 리스트를 사용할 때, 약 381MB의 메모리를 사용한다고 한다. 이 문제에 주어진 제한사항을 보면, 시간 제한 5초에 메모리 제한이 8MB 이다. 그러므로 최악의 상황인 천만 개의 수가 주어진다고 할 때, 이들을 정렬하기 위해 배열에 저장하면 메모리 초과가 나게 된다. 그래서 다른 방법을 찾아보았다. 문제의 ..
-
[WEEK01/DAY02] python : 배열의 복사본을 삭제했는데 원본이 삭제될 때SW Jungle/TIL (Today I Learned) 2022. 9. 25. 02:48
python으로 재귀호출 알고리즘 문제를 풀던 중, 원본 배열이 필요해서 남겨두기 위해 복사본을 만들고 복사본의 일부를 del 명령어를 이용해 삭제했는데 원본이 같이 삭제되어 버리는 현상이 발생했다. 예를 들면, a = [1, 2, 3, 4, 5, 6] b = a# [1, 2, 3, 4, 5, 6] del b[0]# b배열의 0번째를 삭제했으므로 b배열은 [2, 3, 4, 5, 6]이 된다. # 나는 b배열의 일부분을 삭제했으니, a배열은 남아있어야 하는데... print(a)# [2, 3, 4, 5, 6] print(b)# [2, 3, 4, 5, 6] # ?????? 이렇게 되는 것이다. 왜 그런가 하니, 이것은 python의 객체 개념을 이해하지 못한 나의 잘못이었다. python에는 mutable ..
-
[WEEK01] 특별한 과제 - EssaySW Jungle/Life in Jungle 2022. 9. 24. 14:02
📢 찬찬히 나를 돌아보는 시간 지나온 과거에 대한 성찰, 5개월 동안 내가 어떤 것을 얻어가고 싶은지, 어떤 자세로 임하고 싶은지, 정글이 끝난 후 나의 모습은 어땠으면 좋겠는지 등을 생각해보고, 내 블로그에 에세이를 작성해주세요. 모든 과정이 끝났을 때, 다시 살펴 볼 예정입니다. 지나온 과거에 대한 성찰... 평소에 잘 생각하지 않는 주제이기에 고심하며 글을 시작하게 된다. 나의 지나온 과거에 대한 성찰을 하기에 앞서 내 삶의 철학을 말해야 할 것 같다. 나는 나의 선택에 대한 후회가 없는 편이다. 그때 그때의 선택은 그 순간의 나에게는 최선의 선택이기 때문이다. 그 선택으로 인해 초래되는 결과는 예상이 어렵다. 좋은 선택이라고 생각했는데 나쁜 결과가 나올 때도 있었고, 좋지 못한 선택이라고 생각했는..
-
[WEEK01/DAY01] 백준 문제 : 소수 찾기SW Jungle/TIL (Today I Learned) 2022. 9. 24. 02:24
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 오늘 풀었던 알고리즘 중에 제일 어려웠던 문제다. 소수는 약수가 1과 자기 자신밖에 없는 1보다 큰 자연수를 말한다. 그래서 1보다 큰 자연수 n이 주어졌을 때 n이 소수인지를 판별하는 가장 간단한 방법은 2에서 n-1 까지의 모든 자연수로 나누어 보는 것이다. 만약 한 경우에라도 나누어 떨어진다면, n은 소수가 아닌 것이다. 위 방법으로 풀이하면 시간 복잡도가 O(N)이 된다. 좀 더 빠른 방법이 있는데, 굳이 2에서 n-1까지 반복하지 않고 √n 까지만 반복해도..
-
[WEEK00/DAY03] Jinja2 값을 Javascript에서 사용하기SW Jungle/TIL (Today I Learned) 2022. 9. 22. 05:01
Jinja2는 python에서 사용할 수 있는 templating engine이다. 자세한 설명은 아래 블로그를 참조하자. https://frhyme.github.io/python-libs/jinja_basic/ 이번 웹 사이트에서 구현하려는 기능은 본인이 남긴 댓글에만 수정/삭제가 가능하도록 만들어주는 것이었다. 그러기 위해서 클라이언트에 있는 로그인 ID 정보와 서버 댓글 DB에 있는 댓글 ID 정보를 비교해야 했다. 그 과정에서 Jinja2로 전달된 값을 활용해야 했는데, 문제는 Jinja2는 HTML로 만들어주기 때문에 비교 연산자를 쓰기에 부적합했다. 그렇다고 javascript에서 jinja2를 지원하는 것도 아니었다. 그래서 간단한 트릭을 이용했다. 먼저 html로 보내면, 그 값을 java..
-
[WEEK00/DAY02] flask jsonify - ObjectId 전달 에러SW Jungle/TIL (Today I Learned) 2022. 9. 21. 01:39
flask의 기능인 jsonify를 이용하여, javascript 쪽에 딕셔너리 형태의 데이터를 넘기려고 시도했다. 그러나 자꾸 다음과 같은 에러가 나는 바람에 한참 애먹었다. TypeError: Object of type ObjectId is not JSON serializable ObjectId가 JSON 형태로 시리얼라이즈 될 수 없다는 에러 메시지였다. 그렇다면 ObjectId는 무엇인가? 나는 데이터 관리를 위해 mongoDB를 사용했는데, ObjectId는 mongoDB에서 제공하는 unique한 형태의 id 값이었다. mongoDB의 공식 문서를 참고해보면, 대충 해석해보면, 12바이트 길이를 가지고 있는데 다음과 같은 구성으로 이루어져 있다: - 4바이트 길이의 타임스탬프 (ObjectId..