본문으로 바로가기

Daim's blog

네비게이션

  • 홈으로
  • 블로그소개
관리자
  • 블로그 이미지
    다임하게

    파이썬으로 다양한 알고리즘 문제를 풀고 정리하는 공간입니다 : )

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

Python으로 푸는 백준 2210. 숫자판 점프

백준 2210. 숫자판 점프 주어진 격자판을 상하좌우로 이동하여 만들어 낼 수 있는 6자리의 수들 중 중복되지 않은 수들의 갯수를 반환하는 프로그램을 짜시오. 백준에서 푼 문제 리스트 보기 백준에서 문제 보기 Github에서 코드 보기 문제 조건 숫자판의 모든 지점에서 수를 만들어 낼 수 있다. 만들어진 6자리의 수는 서로 중복되지 않아야 한다. 문제 풀이 이 문제는 이해하기 쉽도록 재귀로 풀 수 있다. 주어진 입력값의 크기는 2차원 배열 5*5이므로 재귀로 풀어도 stackoverflow 에러가 나지 않기 때문에 해당 방법으로 문제를 풀었다. 문자의 길이가 6이 아니면 count를 더해 재귀한다. 현재의 문자의 길이가 6이 될때에 만들어진 수를 집합(set()) 컨테이너에 넣어서 중복을 제거해준다. b..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 4. 30. 20:00

Python으로 LeetCode 994. Rotting Oranges (Easy)

LeetCode 994. Rotting Oranges (Easy) 이 문제는 백준 7576. 토마토 문제와 유사하다. 썩은 오렌지가 신선한 오렌지를 썩게 한다고 하였을 때, 모든 오렌지가 다 썩으려면 며칠이 걸리는지 그 최소 일수를 구하도록 해야 한다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 조건 주어진 2차원 배열 Grid에는 각각 숫자가 들어 있고, 0은 빈 칸, 1은 신선한 오렌지, 2는 썩은 오렌지를 의미한다. 썩은 오렌지는 상하좌우의 신선한 오렌지를 썩게 만들수 있다. 신선한 오렌지가 모두 사라질 때의 시간을 구해야 하며, 처음부터 신선한 오렌지가 없을 경우에는 0을, 신선한 오렌지는 있으나 썩은 오렌지가 없을 경우에는 -1을 출력..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 29. 18:00

Git : cherry-pick으로 Commit 재정렬하기

git cherry-pick {Commit ID} cherry-pick이란 cherry-pick은 다른 Branch에 있는 특정 Commit만을 가져와서 현재의 Branch에 반영시키는 기능이다. 언제 cherry-pick을 쓸까 프로젝트를 진행하다보면 이런 경우가 있다. branch를 나눠서 작업하더라도 Commit 이력을 살펴보았을 때, 현재의 Branch의 목적에 맞지 않는 Commit 작업들이 이어지고 있어서 특정 Commit 이후부터 다른 브랜치를 따서 작업을 진행하는게 좋겠다고 생각되는 경우 불필요한 Commit을 제외하고 핵심적인 Commit만 가져와 Master에 반영해야겠다고 생각되는 경우 (더 많은 사례들이 있겠지만) 위와 같이 기존의 Commit 내용을 가져와서 다른 Branch에 반..

Tools/Git 2019. 4. 28. 09:00

Git: 자주 사용하는 명령어 (branch, stash, clean 등)

branch branch 생성 : git branch [branch_name] branch 생성 후 이동 : git checkout -b [branch_name] 생성된 다른 branch 이동 : git checkout [branch_name] branch 삭제 : git branch -D [branch_name] 원격 저장소의 브랜치만 삭제하기 : git push origin --delete [branch_name] remote branch에 올리고 연동 : git branch --set-upstream-to origin/[branch_name] local/remote 모든 branch 보기 : git branch -a local branch 보기 : git branch remote의 branch를 l..

Tools/Git 2019. 4. 27. 09:00

Python으로 푸는 LeetCode 268. Missing Number (Easy)

이 문제는 0, 1, 2....n으로 이루어진 숫자들을 원소로하는 리스트에서, 빠진 숫자가 무엇인지를 찾아 반환할 수 있도록 코드를 짜야한다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 풀이 n까지의 숫자의 총합은 계산하였을 때, n(n+1)/2 이다. 이 식을 이용하여 총합에서 list의 모든 값을 더한 값을 뺐을 때, 빠진 숫자를 찾을 수 있다. 단, 총합에서 list의 모든 값을 더한 값을 뺐을 때읙 결과 값이 0인 경우는 예외처리해주어야 한다. 리스트 내에 0이 있을 경우, 리스트에서 빠진 숫자는 가장 큰 값인 n이므로 리스트이 최대값에서 1을 더한 숫자를 반환하여야 한다. 리스트 내에 0이 없을 경우, 리스트에서 빠진 숫자는 0이므로 ..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 26. 17:00

Python으로 푸는 LeetCode 21. Merge Two Sorted Lists (Easy)

LeetCode 21. Merge Two Sorted Lists (Easy) 주어진 정렬된 2개의 Linked List의 Head를 가지고, 두 List의 원소들을 작은 값부터 차례로 정렬된 List의 Head를 반환하시오. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 풀이 input에서 주어진 두 Linked List는 이미 정렬되어 있다. 따라서 각각의 head부터 순회하면서 작은값들을 가져와 Linked list를 새로 만들어주면 된다. 만약 두 List 중에 하나라도 빌 경우 나머지 Linked List를 현재의 node에다가 이어주기만 하면 된다. 파이썬 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 25. 18:00

Python의 변수(Variable)는 다른 언어와 무엇이 다를까

변수의 정의 일반적으로 변수란 데이터를 저장할 수 있는 메모리 공간 자체를 의미한다. 변수는 숫자와 문자 뿐만 아니라 객체, 혹은 함수(람다 함수)까지도 담을 수 있다. 변수에 담긴 값이나 가리키는 대상은 프로그램 실행 도중에 언제라도 변경될 수 있다. 언제든지 값이 변경될 수 있어서 변수라고 하는 것이다. Python의 변수가 다른 언어와 다른 점 Python의 변수는 다른 언어와는 약간 차이가 있다. 다른 언어들이 값이 담겨 있는 공간의 별칭을 '변수'(variable)라고 말한다. 그러나 파이썬은 변수라는 메모리 공간에 값을 직접 저장하지 않는다. 알다시피, 파이썬에서 사용되는 모든 것(변수, 클래스, 함수 등등)들은 '객체'이다. 우리가 변수에 저장한다고 생각한 '객체'들은 실제로는 다른 메모리 ..

Python/python 파헤치기 2019. 4. 24. 17:00

Python으로 푸는 LeetCode 152. Maximum Product Subarray (Medium)

인접한 원소들과 곱셈(product)을 했을 때, 가장 큰 결과값을 반환하도록 코드를 짜야한다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 풀이 이 문제는 곱셉을 할 수 있는 모든 가능성을 구하기 위하여 list의 범위를 특정짓는 방법으로 2중 for문으로 순회를 하여 풀 수도 있다.(각각의 for문의 값은 시작 Index와 끝 Index) 다만, Time Limit Exceeded가 나온다. Input 값이 매우매우 클 수도 있기 때문에 이미 예상된 결과이기도 하다. 주어진 Input의 list에는 음수의 값도 포함되어 있기 때문에, (음수*음수)는 양의 정수가 되고 이 값이 최대값이 될 수도 있다는 점을 놓쳐서는 안된다. 따라서 음수와 음수..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 23. 17:00

Python으로 푸는 LeetCode 151. Reverse Words in a String (Medium)

이 문제는 단어들을 뒤집고 단어 사이의 간격이 1만큼의 공백이 되도록 하여 반환할 수 있도록 코드를 짜야한다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 풀이 파이썬 내장 함수를 잘 활용하면 쉽게 문제를 풀 수 있다. 먼저 좌우의 빈칸을 strip()을 사용해 제거하고 split()을 사용해서 단어를 쪼개준다. 쪼개준 단어들의 양옆 공백을 strip()으로 제거하여 반환한 리스트를 join() 메소드를 사용해서 합쳐주면 조건에 맞는 문자열이 반환된다. 파이썬 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Solution: def reverseWords(self, s: str) -> str: """ Runtime : ..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 22. 20:00

API 개념 확실히 알고 사용하기

API는 개발자들이면 자주 사용하는 용어인데, 막상 API가 뭐냐고 물어보면 대답하기가 어려운 경우가 있다. RESTful API에서도 REST에 대한 개념을 확실히 인지하고 나니, API는 그럼 뭐라고 하는게 좋을지에 대해서 더 알아보아야겠다는 생각이 들었다. API는? API는 Application Programming Interface의 약자로서, 어떠한 응용프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스를 의미한다. 본래는 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있는 환경을 의미하였으나(시스템 콜도 하나의 Interface), 웹서비스에서 API의 의미가 확장 사용되면서, 특정 사이트에서 특정 데이터를 공유할 경우 어떤 방식으로 정보를 요..

Project/gist 2019. 4. 21. 09:00

REST 제대로 알고 프로젝트에 적용하기

REST란? (Representational State Transfer) 리소스들에 대한 행위를 HTTP Method로 표현하는 것을 말한다. 엄격한 의미로 'REST'는 '네트워크 아키텍처' 원리의 모음이다. '네트워크 아키텍처' 원리란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. RWS (RESTful Web Service) 라고 하는 REST 아키텍처 스타일을 따르는 웹서비스는 인터넷상의 컴퓨터 시스템 간의 상호 운용성을 제공한다. RESTful 웹서비스는 요청 시스템이 균일하고 미리 정의된무상태 연산 세트(GET, POST, PUT, DELETE) 를 사용하여 웹 리소스의 텍스트 표현에 엑세스하고 조작할 수 있게 해준다. REST의 구성 요소 자원 (Resource) 수행 ..

Project/gist 2019. 4. 20. 09:00

Python으로 푸는 LeetCode 48. Rotate Image (Medium)

기존 2차원 배열의 값을 90도 회전시킬 수 있도록 코드를 짜시오. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 조건 새로운 배열을 반환하지 않고 기존 배열을 변형해서 사용해야 한다.(in-place 방식) 문제 풀이 새로운 배열을 반환해도 된다면, zip() 메소드를 사용해서 쉽게 결과물을 구할 수 있다. 하지만 기존 배열을 활용해야 한다면, Rotate()를 하였을 때 기존 값의 위치와 새로운 위치에서 어떤 규칙으로 이동하였는지 찾으면 문제를 풀수 있다. 이런 유형의 문제를 풀 때, 내가 선호하는 방식은 충분히 그릴 수 있을 만한 작은 케이스를 찾아서 직접 위치값(R,C)의 변화를 그려내 규칙을 찾아내는 것이다. 먼저 matrix를 deepc..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 19. 16:30
  • 이전
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ···
  • 12
  • 다음

사이드바

NOTICE

  • 내 맘대로 파이썬 커리큘럼
  • 삼성 SW Expert Academy 푼 문제 리스트
  • LeetCode에서 푼 문제 리스트
  • 백준에서 푼 문제 리스트
  • 정리한 알고리즘 리스트
  • 전체 보기
MORE+

CATEGORY

  • 분류 전체보기 (136)
    • Project (9)
      • pre-work (1)
      • gist (8)
    • Python (5)
      • PYCON 2019 (0)
      • python 파헤치기 (5)
      • cheat sheet (0)
      • module (0)
    • Data structure (9)
    • Algorithm (0)
    • 온라인 코딩 테스트 문제 풀이 (104)
      • 문제 풀이 전략 (1)
      • LeetCode 문제 풀이 (42)
      • 백준 문제 풀이 (33)
      • 삼성 SW Expert 문제 풀이 (26)
      • 프로그래머스 문제 풀이 (2)
      • HackerRank 문제 풀이 (0)
    • Database (6)
      • MySQL (6)
    • Network (1)
    • Tools (2)
      • Git (2)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • DP
  • leetcode
  • Tree
  • python data structure
  • 파이썬 자료구조
  • leetcode python
  • python으로 푸는
  • Django tutorial
  • SW Expert Academy
  • Dynamic Programming
  • leetcode 파이썬
  • 백준
  • SW Expert
  • 삼성 코딩 테스트
  • 삼성 기출 문제
MORE+

CALENDAR

«   2025/07   »
일 월 화 수 목 금 토
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

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT Daim's blog, ALL RIGHT RESERVED.
Daim's blog
블로그 이미지 다임하게 님의 블로그
MENU
  • 홈으로
  • 블로그소개
CATEGORY
  • 분류 전체보기 (136)
    • Project (9)
      • pre-work (1)
      • gist (8)
    • Python (5)
      • PYCON 2019 (0)
      • python 파헤치기 (5)
      • cheat sheet (0)
      • module (0)
    • Data structure (9)
    • Algorithm (0)
    • 온라인 코딩 테스트 문제 풀이 (104)
      • 문제 풀이 전략 (1)
      • LeetCode 문제 풀이 (42)
      • 백준 문제 풀이 (33)
      • 삼성 SW Expert 문제 풀이 (26)
      • 프로그래머스 문제 풀이 (2)
      • HackerRank 문제 풀이 (0)
    • Database (6)
      • MySQL (6)
    • Network (1)
    • Tools (2)
      • Git (2)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바