분류 전체보기

분류 전체보기

    [파이썬 | Python] Mutable object, Immutable object

    파이썬의 모든 것은 객체(object)이다. 거의 모든 객체는 속성(attributes)과 메서드(methods)로 이루어져 있으며, 객체끼리의 식별은 id(object)를 통해서 한다. id가 같다면 동일한 객체, 그렇지 않으면 다른 객체이다. id는 해당 객체를 가리키는 유일한 상수(unique constant)이며, 객체가 서로 같은지 비교를 위해서는 $==$ 가 아닌 is 를 사용한다. C언어의 포인터와 같은 개념이지만, 실제로 id가 가리키는 것이 메모리의 주소를 의미하는 것은 아니다. 객체는 변경 가능하거나, 그렇지 않다. 이것이 mutable object와 immutable object의 차이이다. 쉬운 예로, a = "abc" a.replace("a", "x") # a는 여전히 "abc"이..

    [깃 | Git] Udacity Git Commit Message Style Guide - 깃 커밋 메시지 일관성있게 쓰기 (스타일 가이드)

    커밋 메시지가 보기 좋아야 (일관성있고 체계적으로 작성해야) 나중에 다시 보았을 때 어떤 기능을 추가했는지, 어떤 버그를 고쳤는지 알기 편하다. 최근에 코드를 체계적으로 작성하기 위해서 Java, Python의 Style Guide를 참고했었는데, 커밋 메시지에도 가이드라인이 있다! 오늘은 그 중에서 유다시티의 커밋메시지 스타일가이드를 소개한다. - Commit Message Structure (커밋 메시지 구조) 커밋 메시지는 빈 줄로 나뉘어진 세 가지 파트로 구성된다. title, body(optional), footer(optional) 레이아웃은 아래와 같다. type: Subject body footer - The Type (커밋 타입) 커밋 타입은 제목(title)에 해당하며, 아래 중 하나이..

    [백준 | BOJ] 문제풀이

    알고리즘 공부하는 소모임이 있다! 나도 감 잃지 않으려고 가입해서 공부는 계속 열심히 하려고 하는 중. 오늘 20-22시까지 문제풀이를 적어뒀는데, 기록해 두려고 블로그에도 공유. 문제 목록은 아래와 같다. A: 정육각형과 삼각형 https://www.acmicpc.net/problem/14264 B: 가희야 거기서 자는 거 아니야 https://www.acmicpc.net/problem/21771 C: Router https://www.acmicpc.net/problem/15828 D: 점프왕 쩰리 (Small) https://www.acmicpc.net/problem/16173 E: 쇠막대기 https://www.acmicpc.net/problem/10799 F: Ocean View (Large) h..

    [백준 | BOJ] Good Bye, BOJ 2021! 후기 및 풀이 (ABCD)

    백준에서는 연말에 굿바이 백준, 연초에 헬로 백준(굿모닝 백준) 행사가 있다. 2021 백준 마무리할 겸 문제풀이. 대회에서는 2솔브, 끝나고 CD 업솔빙까지 했다. A. 2021은 무엇이 특별할까? $N$ 범위가 $10,000$이다. 소수를 쭉 늘어놓고, 두개를 미리 곱해두고 이분탐색해서 풀었다. 사실 이분탐색은 필요가 없는데. 원소 개수가 30개가 안 된다. 배열을 한 바퀴 돌 걸. $N = 10,000$일 때 103까지 넣어둬야 하는데, 넣지 않아서 WA, 테스트한답시고 넣은 코드를 안 없애서 WA. 자잘한 실수를 많이 했다. 제출 전에는 꼭 체크하자. B. 예쁜 케이크 대회 중에는 OEIS의 힘을 받아서 풀었다. 손으로 줄줄 쓰다가 뭔가 규칙이 있는 것 같아서 넘겼다. 증명은 아래와 같다. $N ..

    42서울 (42SEOUL) 온라인테스트 후기

    1학년을 마치고 공군 입대, 9월말 전역전 휴가 나와서 본격적으로 어떤 공부를 하면 좋을까 고민. 다양한 코스들을 접하고 들어보는게 좋겠다고 생각했다. 여럿 있었지만 내 눈길을 끌었던 건 삼성 SSAFY, 우아한형제들 우아한테크코스, 이노베이션아카데미(정부) 42서울. SSAFY는 4년제 졸업자 및 졸업 예정자에게 지원자격이 주어져 나에게는 해당이 안 됐고, 우아한테크코스는 다음주 수요일(11/3)에 접수마감이라 고민중에 있다. 서울42에서는 현재 모집중이 아니다. 그래도 상시 온라인 테스트 결과를 통해 교육과정에 입과할 기회를 주기에, 테스트를 한 번 봤다. 테스트는 4분, 2시간이 소요되는 두 가지의 게임이 전부이다. 한 번 보고 나면 다시는 지원할 수 없다는 게 긴장되는 데 한몫했다. 4분이 걸렸던..

    [백준 | BOJ] 가희와 함께 하는 2회 코딩 테스트 후기

    저번에 재밌게 풀었던 시리즈 대회가 열렸다. 1회때와 같이 문제들이 재밌다. 처음 생각한 풀이와는 다르게 생각하는 문제들도 있었다. 1시부터 바짝 참여하지는 못했지만, 5문제를 풀었다. 풀이는 아래. 가희와 함께 하는 2회 코딩 테스트 www.acmicpc.net 1. 가희와 파일 탐색기 문자열 관련 문제를 풀 때면 파이썬밖에 못 하는 나를 조금은 이해할 수 있게 된다.. 단순 정렬 세 번으로 문제를 해결했다. 우선순위의 반대순서대로 정렬을 진행하면, 우선순위를 모두 만족하게끔 정렬할 수 있다. 파일명과 확장자로 나눠 입력받고, 지원하는 확장자들을 dict 를 통해 관리한 뒤, key 를 각각 확장자, 지원 여부, 파일명 순서대로 정렬을 세 번 한다. 2. 가희와 키워드 이 문제도 브루트포스로 해결했다...

    [2021 Dev Carnival] 데브카니발 2021 코딩테스트 금손 배지 후기 (문제 복기)

    goorm.io에서 진행하는 2021 Dev Carnival : 데브 카니발에 참가했다 ! 5월 22일에 진행됐던 코딩테스트였는데, 얼마 전에 테스트 결과가 메일로 날아왔다. 잊고 있었는데 다시 생각나서 글을 쓴다. 테스트를 하면서 작성한 코드를 따로 저장해두지는 않아서 정확한 코드를 가지고있지는 않다. 기억나는 대로 문제를 복기해봐야겠다. 1번 문제는 단순구현 문제였다. 사람마다 먹을 수 있는 음식 양이 정해져 있고, 음식을 순서대로 먹으며 양을 넘는 사람들의 순서를 출력하는 문제였다. 배열 돌려가면서 빠르게 해결했었다. 2번은 구현이 조금 힘들어보여서 3, 4번을 먼저 봤었다. 3번은 보자마자 DP라는 생각이 들어서 도망쳤고, 4번 문제를 붙잡았다. 단방향 그래프가 주어지고, 한 번 정점을 방문할 때..

    [백준 | BOJ] 가희와 함께 하는 1회 코딩 테스트 후기

    요즘 백준에서 문제를 좀 풀고 있다. 어려운 고급알고리즘보다는 대회나 코딩테스트에서 자주 보이는 알고리즘 위주로 연습하려고 한다. Codeforces의 Round나, 백준의 대회나, Atcoder의 Contest 모두 참 좋지만, 신분이 군인인지라 쉽게 응시하지 못하고 있다. 가희와 함께 하는 1회 코딩 테스트 www.acmicpc.net 오늘 괜찮은 시간대에 대회가 열려서 참가하게 됐다. 문제들은 재밌었고, 다양한 알고리즘들이 문제셋에 녹아있어서 이렇게저렇게 풀어보기도 했다. 공지사항에서 미리 "빠른 입출력"을 사용하라고 조언했었는데, 꽤 테스트케이스들이 무거운 모양이다. 파이썬으로 힘겹게 돌아갔다. 저번 숙명여대 SMUPC에서는 2문제만 풀고 대회를 마무리했었는데, 이번 대회에서는 8문제 중에서 6문..

    [파이썬 | Python] 트라이 (Trie) 자료구조

    문자열은 항상 어렵다. KMP도 그렇고, digit으로 정렬하는 것도 그렇고, 알면 알수록 머리아파지는 분야. 그만큼 어렵게 만들면 훨씬 어렵게도 만들 수 있다는 이야기겠지. 오늘은 트라이를 공부했다. Radix tree / Prefix tree 라고도 불리는데, 한 단어의 접두사(접두어)를 모두 저장하고 있다. (해당 단어에 도달하기까지의 문자들을 저장한다) donghoon 이라는 단어를 보면, dong 도 접두사가 될 수 있고, do 도 접두사가 될 수 있다. 트라이에서는 이 단어들이 서로 포함관계에 있다는 것을 알려준다. 트라이에 "app", "ant", "apple"이라는 단어들을 저장한다고 하자. 트라이에는 지금까지의 모든 단어의 자취를 저장한다고 했다. 단어의 각 글자마다, 존재하지 않으면 새..

    [프로그래머스 | Programmers] 월간 코드 챌린지 시즌2 5월 문제풀이

    프로그래머스에서 월간 코드 챌린지를 진행했다 ! 시간이 적절한 시간대에 잡혀서 여유롭게 참여할 수 있었다. 4월달에 한 번, 이번 달에 한 번이 시즌 2 챌린지였는데, 나는 이번 챌린지를 두 번째 대회가 돼서야 접했다. 두 번째 대회까지 총 8문제 중에 4문제만 풀어도 이벤트에 응모할 수 있다는데, 이번에 3문제를 풀면서 아쉽게 응모는 하지 못했다. 이번 달 챌린지에서는 6546명 중 53위를 달성했다 ! 개인적으로 DP가 굉장히 약한 편이라고 생각하는데, 이번 문제셋에서는 구현 / 그리디 / 자료구조 / 그래프 쪽으로 출제돼서 3문제를 맞았다. 1. 약수의 개수와 덧셈 약수의 개수가 짝수면 더하고, 홀수면 빼야 한다. 약수의 개수가 홀수인 경우는 제곱수인 경우이고, 수의 범위가 $1000$ 이니까 $3..