본문으로 바로가기

Daim's blog

네비게이션

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

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

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

Python으로 푸는 LeetCode 344. Reverse String (Easy)

LeetCode 344. Reverse String (Easy)이 문제는 리스트의 원소들을 뒤집어서 출력하도록 코드를 짜야한다.LeetCode에서 푼 문제 리스트 보기LeetCode에서 문제 보기github에서 코드 보기문제 풀이문제는 참 쉬웠다. 문제를 풀면서 notation(:)을 활용하는 방법에 대해서 좀더 되새김 하는 시간이 되었다.string = ["H","E","L","L","O"] "H""E""L" "L" "O" + index 0 1 2 3 4 - index -5 -4 -3 -2 -1 음수 index를 활용하면 긴 코드를 작성하지 않아도 손쉽게 리스트를 뒤집을 수 있었다. * reverse_string = string[::-1] #notation으로 리스트 뒤집기LeetCode의 Easy 단..

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

Python으로 푸는 백준 10026. 적록색약

백준 10026. 적녹색약적록색약인 사람은 빨간색과 초록색의 차이를 거의 느끼지 못한다.따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 조금 다를 수도 있다.크기가 NxN인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다.그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다.적록색약인 사람과 아닌 사람이 보았을 때 그림이 몇 구역으로 보일지 프로그램을 작성하라.백준에서 푼 문제 리스트 보기백준에서 문제 보기github에서 코드 보기(recursion)github에서 코드 보기(반복문)문제 풀이이 문제는 DFS, BFS 관련 백준 대표적인 문제이다. 적록색약인 사람과 그렇지 않은 사람이 보는 구역의 수를 한번에 구하려고 노력하지 ..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 18. 23:30

Python으로 푸는 백준 6603. 로또

백준 6603. 로또집합 S와 S에 포함된 숫자의 갯수 k가 주어질 때집합 S에 포함된 수 중에서 6개의 숫자를 고르는 모든 방법을 구하는 프로그램을 작성하시오.백준에서 푼 문제 리스트 보러 가기백준에서 문제 보기github에서 코드 보기주의할 사항'출력 형식이 잘못되었습니다' 에러가 뜬 경우. : 각 테스트 케이스 사이에 빈 줄을 하나 출력하는 걸 잊었기 때문이다.문제 풀이이 문제는 파이썬의 순열과 조합을 구할 수 있는 itertools 라이브러리를 이해하고 있다면 쉽게 풀 수 있다. itertools를 활용하여 조합과 순열을 푸는 방법을 알고 싶다면 을 참고하기를 바란다.여기서는 combinations 메소드를 활용하여 경우의 수를 모두 구해 문제를 해결한다.이미 주어진 입력에서 S의 원소들이 오름차..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 17. 23:30

Python으로 푸는 백준 14888. 연산자 끼워넣기

백준 14888. 연산자 끼워넣기N개의 수와 N-1개의 연산자가 주어졌을 때,수 사이에 연산자를 끼워넣어서 만들 수 있는식의 결과가 최대인 것과 최소인 것을 구하는 프로그램을 작성하시오.백준에서 푼 문제 리스트 보기백준에서 문제 보기github에서 코드 보기 (itertools.permutations를 활용한 방법)github에서 코드 보기 (재귀를 활용한 방법)문제 조건1. 문제에서 명시한 C++14기준에 따라서, 음수를 양수로 나눌 때에는 음수를 양수로 바꾼 뒤 몫을 취하고 그 몫을 음수로 바꾸어야 한다.(예제 3번이 틀릴 경우 이 조건 때문이다)2. 식의 계산은 연산자 우선 순위를 무시하고 앞에서부터 진행해야 한다.3. 나눗셈은 정수 나눗셈으로 몫만 취한다.문제 풀이문제를 해결할 수 있는 두가지 방..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 16. 23:30

Python으로 푸는 백준 16234. 인구이동

백준 16234. 인구이동인구 이동이 시작되는 날,두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 개방하여 인구 이동을 시킨다.이러한 인구이동이 몇 번 발생하는 지 구하는 프로그램을 작성하시오백준에서 푼 문제 리스트 보기백준에서 문제 보기github에서 코드 보기문제를 틀렸다면 생각 해 볼 조건들1. 친구의 친구라면 걔도 내 친구다.: A, B, C, D 국가가 있을 때, A, C, D가 연합이다. A, B 사이에는 국경을 개방해야 하는 조건이 충족되지 않았지만 연합 국가(C, D) 중 한 국가라도 B와 연합이 가능하다면 A, B는 연합국가가 된다. (나(A)와 B가 직접적으로 아는 사이가 아니더라도, 내(A) 친구가 B와 친구라면 B도 내 친구라는 개념, 친구의 친구면 ..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 15. 23:30

Python으로 푸는 백준 14501. 퇴사

백준 14501. 퇴사 백준이가 퇴사를 하기 전, 최대한 많은 상담을 진행하여백준이가 상담으로 얻을 수 있는 최대 이익을 구할 수 있도록 개발해야 한다.백준에서 푼 문제 리스트 보기백준에서 문제 보기github에서 코드 보기문제 조건백준이는 비서에게 최대한 많은 상담을 잡으라고 했다.각각의 상담을 완료하는데 걸리는 시간은 각각 Ti에 적혀 있다.모든 상담을 N일째 되는날 진행할 수 있다.상담의 시작 날짜를 조정할 순 없고, 다만 상담을 할지 말지 여부만 결정할 수 있다.문제 풀이나는 비트마스크를 활용하여 모든 경우의 수를 탐색하여 문제를 풀었다. 주어진 조건에 따라서 가지치기를 하면서 최대 금액을 계산하였다.내가 가지치기를 한 조건은 다음과 같다.1. 남은 퇴사일이 상담을 진행해야 하는 일수보다 적어 상..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 14. 23:30

Python으로 푸는 백준 1003. 피보나치 함수

백준 1003. 피보나치 함수이 문제에서는 피보나치 수 N을 구하려고 할때,fibonacci(N) = fibonacci(N-1) + fibonacci(N-2)라는 점을 활용하여 fibonacci(1)과 fibonacci(0)이 각각 몇 번 구해지는지를구할 수 있도록 코드를 짜야 한다.백준에서 푼 문제 리스트 보기github에서 코드 보기 문제 풀이문제에서는 재귀를 활용하여 피보나치의 수를 구할 때 0과 1이 필요할 때마다 출력되는 C++ 함수를 보기에 제공하고 있다.C++함수에서 처럼 재귀를 활용한다면 코드를 이해하기 쉽고 피보나치 수도 구할 수 있지만 N의 수가 커지면 커질 수록 함수를 호출하는 일이 많아지면서 고스란히 스택 메모리에 쌓이게 된다. 스택이 꽉 차게 되면 스택 오버플로우(stack ove..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 13. 23:30

Python으로 푸는 SW Expert Academy 2806. N-Queen

SW Expert Academy 2806. N-Queen체스판에서 퀸은 같은 가로, 세로줄, 대각선에 위치한 체스말을 잡을 수 있다.이러한 특징을 이해하고 각 가로줄마다 퀸을 놓을 수 있는 경우의 수를 알아낼 수 있는 코드를 짜보자삼성 SW Expert Academy에서 푼 문제 보기github에서 코드 보기문제 풀이퀸을 한줄마다 놓을 때, 가로, 세로, 대각선에 위치한 퀸인지 확인한다. 맨 마지막이 될때까지 모든 퀸을 놓을 수 있으면 count를 증가시킨다.모든 경우의 수를 탐색하지만, 퀸을 놓을 수 있는 자리인지를 확인하고 놓을 수 없을 경우에 backtracking하는 방법으로 코드를 짰다.문제에서 다른 예시가 필요할 수도 있어서 아래 남겨두도록 하겠다.n = 1, output : 1n = 2, o..

온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 2019. 3. 12. 23:30

Python으로 푸는 SW Expert Academy 1227. 미로2

SW Expert Academy 1227. 미로2미로에서 시작 점부터 도착점으로 표시된 지점까지갈 수 있는 길이 있는지 판단하는 프로그램을 작성해야 한다.이 문제는 문제와 규모만 다를 뿐 같은 문제이며 에서 주어지는 1차원 배열의 크기가 커지더라도문제가 없도록 코드를 잘 짰다면 무난하게 통과할 수 있다.SW Expert Academy 1226. 미로1 풀이 보기삼성 SW Expert Academy에서 푼 문제 보기github에서 코드 보기문제 조건상하좌우로 이동이 가능하다.시작 지점에서 도착지점까지 도달이 가능한지 여부만 반환하면 된다.문제 풀이도달할 수 있는 모든 지점을 확인하면 된다. 아마 시간 초과를 막기 위해서는 벽인지 아닌지만 구분해서 길일 경우에 그게 도착지점(3)인지를 확인하면 된다.이미 한..

온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 2019. 3. 11. 23:30

Python으로 푸는 SW Expert Academy 1249. 보급로

SW Expert Academy 1249 보급로이 문제는 파괴된 도로를 지나갈 수 없는 트럭이나 탱크가 도착 지점까지 가장 빠른 시간안에 도착할 수 있도록최단 시간 경로를 찾아 파괴된 도로를 수리하여야 한다.얼마나 걸려야 시작지점에서 도착지점에 가장 빨리 도착할 수 있을까.SW Expert Academy에서 푼 문제 보기github에서 코드 보기문제 조건도로가 파여진 깊이에 비례해서 복구 시간은 증가한다.깊이가 1이라면 복구에 드는 시간이 1이라고 가정한다.시간이 적다면 길을 돌아가도 상관 없다. (상하좌우로 이동 가능)문제를 틀렸다면 생각할 상황 길을 돌아가는게 오히려 시간을 절약할 수도 있다. 16010000010100010100010100010100000100 output : 0문제 풀이문제 자체는..

온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 2019. 3. 10. 23:30

Python으로 푸는 SW Expert Academy 1219. 길찾기

SW Expert Academy 1219. 길찾기도시들의 간의 간선 정보가 나와 있고,가는 길의 개수와 상관없이 한가지 길이라도 도시 0 에서 도시 99로 갈 수 있는 길이 존재하는지 확인하는 코드를 구현해야 한다.삼성 SW Expert Academy에서 푼 문제 리스트 보기github에서 코드 보기문제 조건출발점은 0, 도착점은 99로 표현된다.도시 사이의 간선은 일방통행으로 연결되어 있으므로 되돌아오는 것이 불가능하다.그 말은 즉, 도시에 들어갈 순 있어도 나갈 순 없는 도시도 존재할 수도 있다는 말이다. (사이트에 예시로 나와 있는 10번 도시가 그렇다)문제 풀이문제에서는 size 100의 정적배열 2개를 선언하여 각 정점 번호를 주소로 사용하고, 저장되는 데이터는 각 정점에서 도착하는 정점의 번호..

온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 2019. 3. 9. 23:30

Python으로 푸는 백준 2178. 미로탐색

백준 2178. 미로탐색문제는 N X N 으로 표현되는 2차원 배열이 있다. (0,0)에서 출발하여 (N-1, M-1) 위치까지 이동할 때, 지나가게 되는 칸 수의 최솟값이 무엇인지 구해야 한다.백준에서 푼 문제 리스트 보기github에서 코드보기문제 조건1은 길이고 0은 벽이다. 서로 인접한 칸으로만 이동할 수 있다. (즉, 상하좌우로만 이동이 가능하다)문제 풀이모든 칸이 벽이 존재하지 않고 이동가능한 칸(1)일 경우에는 어떤 경로로 현재의 칸에 도달하게 되었는지에 따라서거쳐온 칸 수가 서로 다를 수도 있다. 그러므로 (0,0)에서 부터 시작하여 상하좌우의 칸들이 이동가능한 칸인지 확인하고이미 지나온 칸이더라도 이동 가능한 칸이라면 (지나온 칸 수 + 1) < (최소 칸이라고 입력되어 있는 칸 수) 일..

온라인 코딩 테스트 문제 풀이/백준 문제 풀이 2019. 3. 8. 23:30
  • 이전
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 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

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

CALENDAR

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

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 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바