본문 바로가기 메뉴 바로가기

구름을 채우다

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

구름을 채우다

검색하기 폼
  • 분류 전체보기 (81)
    • 내 이야기 (0)
    • 나만의 사진전 (2)
    • TIL (1)
    • 컴퓨터공학 (11)
      • 운영체제 (11)
    • 프로그래밍 언어 (3)
      • Java (3)
      • Python (0)
    • 알고리즘 (45)
      • 백준 (34)
      • 프로그래머스 (11)
    • Cloud Computing (13)
      • Openstack (10)
      • Docker (3)
      • Kubernetes (0)
    • Server Framework (1)
      • Django (1)
    • Books (5)
  • 방명록

알고리즘 (45)
[백준 13460] 구슬 탈출 2

문제 보기이 문제는 BFS에 브루트포스를 응용한 문제이다.처음에 문제를 읽을 당시에는 어떻게 코드를 짜야할 지 몰랐지만, 질문게시판을 뒤지다 보니 영감을 얻었다.한 번 방문할 때마다 각 방향을 탐색하는 건 기존의 BFS 동일하다.하지만 판을 기울일 때 벽, 구멍 또는 다른 공에 닿을 때까지 직진을 해야한다는 것에 주의해야 한다. 또 주의해야할 점은, 두 개의 공을 굴려서 같은 곳에서 멈추는 경우에는, 공이 굴러간 거리를 계산한 뒤, 굴러간 거리가 더 긴 공을 다시 굴러왔던 방향으로 1번 이동해야 한다. (그렇게 해야 공이 겹치지 않는다. 60~65번째 줄 참고) 67~69번째 줄을 보면 다음과 같은데, 이 부분의 코드가 없으면 count가 11이상이 되는 반례가 생긴다. # prevent count fr..

알고리즘/백준 2019. 9. 18. 20:28
[백준 1004] 어린 왕자

문제 보기예전에 오답처리를 2번 받고나서 귀찮아서 안 푼 문제인 것 같다.문제 해결을 위한 방법은 매우 간단하다.어린 왕자가 출발점에서부터 도착점까지 최소한의 행성계의 이탈/진입 횟수를 측정하는 것인데, 이는 한 가지의 조건만 안다면 해결할 수 있다. 핵심 조건은 각 행성계를 기준으로, 출발점과 도착점 서로 행성계의 안팎으로 다른 위치에 있어야 한다는 것이다. 위의 그림에 해당하는 조건을 만족하는 행성계의 갯수를 세면 정답이다. 소스코드에서 위의 조건에 해당하는 조건문은 19번째 줄이다.점과 점 사이의 거리를 측정하기 위해서 원래 sqrt를 써야하지만, 나는 sqrt를 쓰지 않는 대신 행성계의 반지름의 길이를 제곱해서 비교하였다. 12345678910111213141516171819202122import..

알고리즘/백준 2019. 6. 19. 02:18
[백준 14503] 로봇 청소기

문제보기 이 문제는 문제에서 요구하는 순서에 따라 코딩하면 되는 시뮬레이션 문제이다. 문제만 읽어보면 아주 쉬운 문제이지만, 나는 어디서 잘못됐는지 한동안 풀지 못했었다. 아직 많이 미숙한 것 같다. 코드 상에서 눈여겨 볼 점은, 로봇의 작동 순서 중 2-2단계가 없다는 것이다. 코드에서 2번째 while문은 로봇이 네 방향을 모두 탐색하면서 청소를 하기 위한 while문이다. 30번째 줄을 보면 nextDir = (nextDir + 3) % 4 부분이 있는데, 로봇이 보고있는 현재 방향에서 왼쪽을 탐색하는 게 아니라, 탐색할 방향만을 계속해서 바꾸는 것을 알 수 있다. (그리고 나중에 현재 로봇의 방향과 같다는 조건을 비교하면 네 방향을 모두 탐색했다는 뜻이 된다.) 이로써 2-2단계의 코드는 생략할 ..

알고리즘/백준 2019. 3. 31. 09:09
[백준 14502] 연구소

문제보기해당 문제는 브루트포스와 BFS를 조합한 문제이다.문제를 풀기 위해, 세워야 하는 벽의 갯수는 반드시 3개여야 하며, 안전 영역 크기의 최댓값을 구해야 한다. 이를 통해서 벽을 세울때는 반드시 겹치면 안되며, 벽의 위치의 조합을 구해야 하고, 해당 조합은 안전구역에서 겹치지 않는 3개의 위치여야 한다는 것을 알 수 있다..게다가 주어진 입력값의 범위가 크지 않은 3

알고리즘/백준 2019. 3. 18. 12:02
[백준 16235] 나무 재테크

문제보기 파이썬으로 풀어본 첫 알고리즘 문제이다. 처음에 문제를 읽었을 때는, 그저 문제에서 하라는대로 코딩을 하면 풀 수 있겠다 생각했지만 그건 아니었다. 가장 큰 실수를 범할 수 있는 부분 2가지가 있다. 첫째로, 봄에 양분이 모자라서 죽은 나무를 처리하기 위해 각 칸을 순회하면서 그 칸에서 죽은 나무를 삭제하는 동시에 바로 양분을 추가하는 것(여름 단계)이다. 즉, 각 칸을 순회할 때, 봄 단계의 처리가 모두 끝난 후에 여름 단계를 처리해야한다. 왜냐하면 각 칸을 순회할 때, 죽은 각 나무들의 양분을 바로 더해버리면 같은 칸에 있는 다음 나무 양분에게 영항을 끼치기 때문에 올바른 값이 나올 수가 없다. 둘째로, 문제에 다음과 같은 설명이 있다. "처음 두 개의 정수는 나무의 위치 (x, y)를 의미..

알고리즘/백준 2019. 3. 16. 07:59
이전 1 2 3 4 5 다음
이전 다음
링크
  • Github
공지사항
  • 환영합니다.
최근에 달린 댓글
Total
Today
Yesterday
TAG
  • 브루트포스
  • Message Passing
  • 파이썬 클린 코드
  • 클린 코드
  • gerrit
  • Deadlock
  • contribute
  • Java
  • Bounded Buffer
  • openstack
  • 프로그래머스
  • 운영체제
  • 큐
  • docker
  • 파이썬
  • git
  • bfs
  • 시뮬레이션
  • Clean Code
  • 백준
  • Python
  • launchpad
  • shared memory
  • 덱
  • 알고리즘
  • dfs
  • contribution
  • 해쉬
  • Synchronization
  • 스택
more

Blog is powered by Tistory / Designed by Tistory

티스토리툴바