동호 데브-로그(49)
-
[Java] 백준 1697번 숨바꼭질
이 글은 백준 1697번 숨바꼭질을 풀이한다. 코드는 Java로 구현하였다. 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 예제 입력 1 5 17 출력 수빈이가 동생을 찾..
2023.02.27 -
[Java] 백준 4179번 불!
이 글은 백준 4179번 불!을 풀이한다. 코드는 Java로 구현하였다. 문제 지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자! 미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 결정해야한다. 지훈이와 불은 매 분마다 한칸씩 수평또는 수직으로(비스듬하게 이동하지 않는다) 이동한다. 불은 각 지점에서 네 방향으로 확산된다. 지훈이는 미로의 가장자리에 접한 공간에서 탈출할 수 있다. 지훈이와 불은 벽이 있는 공간은 통과하지 못한다. 입력 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력..
2023.02.24 -
[Django] Node.js 개발자를 위한 Django REST Framework 급하게 배워보기 - 2
지난 시간에 이어 오늘 정리해볼 것은 MySQL 연동이다. Django는 기본적으로는 SQLite을 사용하도록 구성되어 있었다. 하지만, 나는 SQLite보다는 MySQL로 테스트하길 원했기 때문에 설정을 조금 바꿔주었다. MySQL 연동 기본적인 MySQL 설치 및 세팅은 다른 블로그를 참고해주세요. 1. mysqlclient install mysqlclient는 c언어 기반으로 만들어진 파이썬용 데이터베이서 커넥터(Databaser Connector)이다. pip install mysqlclient 2. settings.py 재설정 # Database # https://docs.djangoproject.com/en/3.2/ref/settings/#databases DATABASES = { 'defau..
2023.02.23 -
[Java] 백준 7576번 토마토
이 글은 백준 7576번 토마토를 풀이한다. 코드는 Java로 구현하였다. 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, ..
2023.02.23 -
[Django] Node.js 개발자를 위한 Django REST Framework 급하게 배워보기 - 1
갑자기 웬 DRF? 이번 학기에 대학교 개인 프로젝트에서 공공데이터포털의 부동산 데이터를 이용할 일이 생겨서 어떤 식으로 데이터를 처리하고 가공할지 고민하다가 파이썬을 사용하기로 마음 먹었다. 자바스크립트에 Node.js가 있다면, 파이썬에는 DRF(Django REST Framework)가 있었다. DRF는 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리(프레임워크)이다. 이 포스팅에서는 Node.js 개발자 입장에서 이해하기 쉽게 서술하겠다. 개발 환경 준비 따로 Python을 설치하는 과정은 넣지 않았습니다. macOS 환경을 기준으로 설명합니다. 1. 가상 환경 생성하기 '엥? 무슨 프로젝트를 하나 만드는데 가상 환경이 필요해?' 라고 생각할 수..
2023.02.22 -
[Java] 백준 2178번 미로 탐색
이 글은 백준 2178번 미로 탐색을 풀이한다. 코드는 Java로 구현하였다. 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다...
2023.02.22