본문으로 바로가기

Daim's blog

네비게이션

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

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

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

Python으로 푸는 LeetCode 38. Count and Say (Easy)

숫자 N이 입력되었을 때 규칙에 맞게 수를 세어 결과값을 반환하는 프로그램을 짜시오. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 github에서 코드 보기 문제 풀이 예시를 보고 이해하면 크게 어려운 문제는 아니다. 앞의 N의 수에서 변환한 문자열을 기준으로 다시 계산해야 한다. N이 3일 때, "21"이었으므로 N이 4일 경우에는 "21" 를 count and say 해야한다. 따라서 4일 때는, 하나인 2와 한개인 1이 합쳐져서 "1211"이 된다. N이 만약 30이라면 N이 1일때부터 반복해서 결과물을 계산하고 그 결과물을 다음 계산에서 활용하면 된다. (while문) 파이썬 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20..

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

Python으로 푸는 백준 2638. 치즈

이 문제는 실온에 둔 치즈가 있고, 공기를 접한 치즈 부분은 정확히 한시간 후에 사라진다고 가정했을 때, 치즈의 모든 부분이 녹아 없어지는게 걸리는 정확한 시간을 구하는 프로그램을 작성해야 한다. 백준에서 푼 문제 리스트 보기 백준에서 문제 보기 github에서 코드 보기 문제 풀이 공기에 닿은 치즈인지를 구분하는 방법을 찾는게 문제 풀이의 관건이다. 공기와 밀접한 치즈의 경우에는 얼마나 많은 면이 공기와 맞닿아 있는지 치즈에 수치를 적어준다. 수치가 2이상인 치즈와 맞닿아 있는 치즈인 경우에는 직접적으로 공기와 닿진 않지만 간접적으로 공기와 닿아있는 것과 같다. 치즈를 다 녹인 다음에는 다시 수치를 측정하기 위해서 치즈의 수치를 본래 값으로 변경해주어야 한다. 파이썬 코드 1 2 3 4 5 6 7 8 ..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 4. 5. 19:01

Python으로 푸는 LeetCode 27. Remove Element (Easy)

배열의 위치를 변경하지 않고 기존의 배열의 원소들 중에 특정 원소를 삭제한다. (in-place algorithmn으로 구현) 반환하는 값은 아무 값이어도 상관 없다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 github에서 코드 보기 문제 풀이 지난 문제(LeetCode 26. Remove Duplicates from Sorted Array (Easy))와 유사하다. 이번에는 값을 삭제하게 되면서 배열의 길이의 변동이 있다는 점이 다르다. 이 문제가 어렵지는 않지만, 내가 자주 사용하는 numerate() 메소드가 새로운 객체로 반환하는지 결과값은 같으나 Wrong Answer이라고 떴다. 생각해보니 Python의 enumerate()는 index의 값을 추가해서 객체를 ..

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

Python으로 푸는 LeetCode 26. Remove Duplicates from Sorted Array (Easy)

중복을 제거한 Array의 원소의 수를 구하고 기존 배열에 순서대로 해당 값을 나열해야 한다. leetcode에서 푼 문제 리스트 보기 leetcode에서 문제 보기 github에서 코드 보기 문제 풀이 이 문제는 결국 기존 배열은 건드리지 말고 중복을 제거한 배열의 길이를 구하고 그 원소들을 배열에 값만 바꾸면 풀 수 있다. 배열의 변수에는 배열의 시작 주소가 담겨있다. 그리고 배열에 담긴 요소들의 길이마다 다음 원소의 주소값을 계산할 수 있다는 장점이 있다. 따라서 nums 변수에 다시 다른 배열에 할당했거나 배열의 길이를 늘렸다면 알아차릴 수 있으니 in-place 방식으로 문제를 풀라는 의미이다. 나는 문제를 쉽게 풀기 위해서 파이썬의 set 컨테이너에 담았다가 파이썬의 List 컨테이너로 다시 ..

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

Python으로 푸는 LeetCode 13. Roman to Integer (Easy)

이 문제에서는 로마자 숫자를 10진수의 숫자로 변경하는 프로그램을 짜야한다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 Github에서 코드 보기 문제 풀이 로마자를 어떤 숫자로 변환해야 하는지는 이미 조건으로 주어졌다. 단, 다음의 경우에 대해서는 예외처리는 해주어야 한다. {"IV" : 4, "IX" : 9, "XL" : 40, "XC" : 90, "CD" : 400, "CM" : 900} 문자열을 순회하면서 현재의 index가 맨 마지막 글자가 아니고 I, X, C 문자라면 그 뒤에 있는 문자에 I일 경우 V, X가 있거나, 문자가 X일 경우에는 L, C가 있거나, 문자가 C일 경우에는 뒤에 문자가 D, M인지를 확인해서 예외처리를 해주면 된다. 파이썬 코드 1 2 3 ..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 4. 2. 19:30

Python으로 푸는 LeetCode 9. Palindrome Number(Easy)

Palindrome Numbers의 규칙에 맞게 앞으로 읽어도 뒤로 읽어도 같은 숫자가 되는 경우인지 판단하는 프로그램을 짜시오 (주어진 숫자를 string으로 변경 없이 풀어봅시다) LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 githhub에서 코드 보기 문제 풀이 문제를 풀고 나니 숫자를 string으로 변경 없이 풀어보라는 걸 알았다. string으로 변경해서 푼 코드와 풀이 방법을 올려두고 내일 다시 풀어봐야겠다. 방법 1. 숫자를 string으로 변경해서 문제를 푼다. 먼저 숫자의 길이가 짝수인지 홀수인지 판단하여 boolean 값을 저장해두자. 마치 거울로 비춘 숫자처럼 정 가운데에서부터 양 끝으로 이어지는 숫자가 차례대로 같은 수를 Palindrome이라고 한다. ..

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

Python으로 구현하는 자료구조 : Linked List (1) Singly linked list

Linked list(연결 리스트)는 (데이터와 다음 노드의 주소를 담고 있는) 노드들이 한 줄로 연결되어 있는 방식의 자료 구조입니다. 연결되는 방향에 따라, (1) Singly linked list (단일 연결 리스트), (2) Doubly linked list (이중 연결 리스트), (3) Circular linked list (환형 연결 리스트)가 있습니다. 이 포스팅에서는 Linked list와 Singly Linked list 의 특징을 알아보고 파이썬으로 Singly Linked list의 삽입, 삭제, 조회를 구현해보도록 하겠습니다. # Linked list란? Linked List는 데이터를 노드의 형태로 저장합니다. 노드에는 데이터와 다음 노드를 가르키는 포인터를 담은 구조로 이루어져 ..

Data structure 2019. 3. 31. 02:00

Python으로 구현하는 자료구조 : Stack

Python으로 Stack을 구현해보고 Stack 자료 구조의 특징과 데이터의 삽입과 삭제에 대해서 알아보도록 하겠습니다. # Stack 이란 Stack은 데이터의 삽입과 삭제가 저장소의 맨 윗 부분(the top of stack)에서만 일어나는 자료구조입니다. 스택은 데이터가 순서대로 저장되고 스택의 마지막에 넣은 요소가 처음으로 꺼내집니다(LIFO : Last-in, First-out"). Stack은 연속으로 저장된 데이터 구조를 가지고 있고 맨 위 요소에 대한 포인터(주소값)을 가지고 있는 Array나 singly linked list로 구현할 수 있습니다. Stack의 장점은, (1) 참조 지역성(한번 참조된 곳은 다시 참조될 확률이 높다)을 활용할 수 있다는 점이며, Stack의 단점은, (1..

Data structure 2019. 3. 31. 01:28

Python으로 구현하는 자료구조 : Array

Array Python Array 자료형의 특징과 삽입, 삭제, 조회(검색) 하는 방법에 대해 알아보도록 하겠습니다. Python은 Array를 기본 자료형으로 제공하지 않습니다. 따라서 Array을 사용하고 싶다면 NumPy와 같은 패키지를 추가로 설치해야만 합니다. 이 포스팅에서는 NumPy를 따로 설치하여 사용하지 않고 Python의 기본 컨테이너 중 하나인 List를 Array 대신 사용해보도록 하겠습니다. # Array는 무엇인가요 Array는 여러 원소들이 순차적으로 메모리에 저장(contiguous memory locations)하는 구조입니다. 기본적으로 배열은 모든 원소가 같은 자료형이어야 하며, 배열의 크기를 변경할 수 없습니다. Array를 담은 변수에는 배열의 첫 원소의 메모리 주소..

Data structure 2019. 3. 30. 16:00

Python으로 푸는 LeetCode 7. Reverse Integer (Easy)

LeetCode 7. Reverse Integer (Easy) 정수를 뒤집어서 반환하는 코드를 짜야한다. 단, 반환하는 값이 int로 표현 가능한 범위 내를 벗어나는 경우 0을 출력한다. LeetCode에서 푼 문제 리스트 보기 LeetCode에서 문제 보기 github에서 코드 보기 문제 풀이 숫자가 0보다 작으면 마지막에 -1을 곱해주기 위해서 부호를 파악해둔 다음, 파이썬의 abs() 메소드를 활용해 절대값을 구한 후 x에 다시 저장해준다. 숫자를 뒤집기 위해서 숫자 x를 string으로 변환해준다. 변환한 문자열 x를 처음부터 끝까지 탐색하면서 각 자릿수를 1의 자리, 10의 자리, 100의 자리....n의 자리로 곱해 뒤집은 절댓값 숫자를 만들어준다. 맨 마지막에 처음 x가 음수였다면 -1을 곱..

온라인 코딩 테스트 문제 풀이/LeetCode 문제 풀이 2019. 3. 30. 09:00

MySQL로 실습 하기- 사용자 권한 부여, SQL로 테이블 생성하고 삭제하기 (on Mac)

공부한 내용을 기록하고 정리하기 위해서 글을 쓰고 있습니다. 부족한 내용은 지속적으로 추가, 수정될 수 있습니다. SQL을 사용해보고 싶어서 Query 버튼을 누른 다음에 DATABASE를 생성하는 Query를 작성해 실행해 보았더니 다음과 같이 에러가 떴네요. 그러고보니 지난 시간에 새로운 user를 생성하고 어떠한 권한도 부여하지 않았습니다. 새로 생성한 계정에 대해서는 권한을 부여해 주지 않으면, 데이터베이스를 생성하는 것부터 그 어떤 조작도 불가능합니다. 새로 생성한 사용자에게 권한 부여하기 권한을 부여해주기 위해서 root 권한으로 로그인 한 후, 실습을 용이하게 하기 위해서 모든 데이터베이스에 대한 권한을 부여해주도록 하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 /* 특정 데이터베이..

Database/MySQL 2019. 3. 29. 21:30

MySQL 실습 환경 Sequel Pro 사용하여 만들기 (on Mac)

공부한 내용을 기록하고 정리하기 위해서 글을 쓰고 있습니다. 부족한 내용은 지속적으로 추가, 수정될 수 있습니다. Sequel Pro 설치하기 Sequel Pro는 무료로 사용할 수 있는 MySQL Client 프로그램입니다. 아직 사용해보진 않았지만, 이러한 프로그램을 사용하면 쿼리를 쉽게 입력하고 쉽게 결과값을 쉽게 확인할 수 있습니다. 그러므로 해당 프로그램을 설치하여 쿼리 실습을 진행하도록 하겠습니다. (설치할 수 있는 링크) 미리 말하자면, 이 프로그램을 설치하는데 현재 설치한 MySQL의 최신 버전(8.0) 버전과 Sequel Peo(1.1.2) 버전과 연결을 시도하면 다음과 같은 에러가 발생합니다. 따라서 이 문제도 함께 해결하면서 Sequel Pro를 설치하고 MySQL에 접속해보도록 하겠..

Database/MySQL 2019. 3. 29. 21:00
  • 이전
  • 1
  • ···
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • ···
  • 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

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

CALENDAR

«   2025/10   »
일 월 화 수 목 금 토
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 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바