profile
개발 일기
post-thumbnail

[ BOJ / Python ] 24513번 좀비 바이러스

이번 문제는 BFS를 이용하여 해결하였다. 처음에는 1과 2를 4 방향으로 퍼트리며 임시 큐에 퍼진 위치를 저장하고, 그 위치를 초기의 1과 2의 위치를 저장한 큐에 다시 넣는 방식을 사용했다. 2를 퍼트릴 때 퍼트리려는 좌표가 1의 위치를 저장한 좌표에 존재할 경우

약 12시간 전
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 11060번 점프 점프

이번 문제는 BFS와 DP를 함께 사용하여 해결하였다. BFS로 현재 칸에서 점프할 수 있는 칸에 대한 정보를 담는다. 이때 dp리스트에 들어있는 값을 비교하여 현재 카운팅변수+1보다 다음 칸 dp값이 더 클 경우에만 다음칸에 대한 정보를 담게 된다. 이 과정에서 dp

3일 전
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 3055번 탈출

이번 문제는 전에 풀었던 문제와 매우 유사하였다. 물의 좌표를 큐에 담고, 4방향으로 물을 퍼트리며 새로운 좌표를 새로운 큐에 넣은 후, 새로운 좌표들이 담긴 큐를 물의 좌표 큐로 복사시킨다. 이렇게 하면 불필요한 물의 좌표 탐색을 줄일 수 있다. 그리고 고슴도치의 이

3일 전
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 12919번 A와 B 2

이번 문제는 백트레킹을 통해 해결하였다. 처음에는 s에 두가지 연산을 계속해서 적용해보는 백트레킹을 구현하였다. 값은 정확하게 도출되었지만 시간초과가 발생하였다. 그래서 이번에는 t에 두가지 연산의 반대 연산을 계속해서 적용하는 백트레킹을 구현하였다. 이 경우에는 t의

5일 전
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 18405번 경쟁적 전염

이번 문제는 각 숫자의 위치를 deque로 저장한 리스트로 관리하고, BFS를 통해 주변을 탐색하며 0인 경우에 자신으로 숫자를 바꿔주는 방식을 사용하였다. 이때 각 숫자의 모든 위치를 계속해서 deque에 담으면 탐색의 크기가 커지기 때문에 새로 값을 입력한 값들만

5일 전
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 11559번 Puyo Puyo

이번 문제는 BFS를 통해 현재 위치와 연결된 위치에 자신과 같은 문자가 있는지를 찾고, 같은 문자가 4개 이상이 될 경우에만 방문처리 하도록 하였고, 4개보다 적을 때에는 다시 방문처리를 취소해주었다. 이렇게 해서 방문처리 리스트에 True로 표기되는 위치는 이번 차

6일 전
·
0개의 댓글

[ CS / Network ] RESTful API

그동안 개발을 해오면서 RESTful API를 구현해왔지만, RESTful API에 대한 정의는 알지 못하고 있었다. 그래서 이번에는 RESTful API에 대한 내용을 정리해보려고 한다.REST는 Representational State Transfer의 약자로, 자

6일 전
·
0개의 댓글
post-thumbnail

[ CS / Network ] Proxy

프록시란 대신한다는 의미를 가지고 있다. 네트워크 상에서 두 컴퓨터 간의 통신이 발생할 때에 서로에게 직접 요청하는 것지 않고 중간에서 대리로 통신 역할을 하게 된다. 이렇게 중간에서 역할을 하는 서버를 프록시 서버라고 하고, 이러한구조를 프록시라고 한다. 중간 서버라

6일 전
·
0개의 댓글
post-thumbnail

[ CS / Network ] SSL (Secure Socket Layer)

SSL은 Secure Socket Layer의 약자로, 암호화 기반 인터넷 프로토콜이다. 인터넷 통신의 정보 보호, 인증, 무결성을 보장하기 위해 등장하였다.SSL은 OSI 7 Layer의 Presentation Layer에서 처리되고, 공개키 암호화 기법으로 암호화를

6일 전
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 5427번 불

이번 문제는 BFS를 통해 해결하였다. 처음에는 불의 이동을 브루트포스를 통해 구현하고, 상근이의 이동을 BFS로 구현하였다. 그러나 시간초과가 발생하였다. 불의 이동을 위해 불의 좌표를 모두 찾아야 하는 것에서 문제가 된 것으로 판단되었다. 그래서 불의 초기 좌표를

2022년 5월 11일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 6087번 레이저 통신

이번 문제는 BFS 알고리즘을 통해 해결하였다. 처음에는 최단거리를 찾으면 바로 방향을 바꾸는 최소 갯수를 구할 수 있을 것이라 생각하였고, BFS 알고리즘을 통해 최단거리를 찾았다. 그러나 최단거리에도 여러 방법이 존재하고, 그때마다 방향을 바꾸는 경우가 여러가지라는

2022년 5월 11일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 1103번 게임

이번 문제는 DFS와 DP를 이용하여 해결하였다. 처음에는 DFS만으로 탐색하여 시간초과가 발생하였다. 그래서 DP를 통해 해당 좌표에서의 값을 저장하고, 다음 탐색하고자 할 때의 카운팅 변수가 그 좌표의 dp값보다 작을 경우에는 탐색하지 않도록 하는 방식으로 가지치기

2022년 5월 11일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 1600번 말이 되고픈 원숭이

이번 문제는 BFS를 통해 해결하였다. 맨 처음에는 백트레킹을 통해 구현하였지만 시간초과가 발생하였고, BFS로 구현하였다. 중요한 포인트는 방문처리 리스트를 3차원 배열로 줘야 한다는 점이었다. 말의 움직임이 k번 남은 경우에 대한 모든 거리를 저장해주어야 답을 구할

2022년 5월 10일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 1986번 체스

이번 문제는 구현 문제로, 퀸과 나이트의 이동 방향을 dy, dx 기법으로 구현하여 해결하였다.

2022년 5월 10일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 14925번 목장 건설하기

이번 문제는 다이나믹 프로그래밍을 통해 해결하였다. 맨 처음에는 브루트포스를 통해 문제를 파악하였고, N, M의 범위가 1000까지기 때문에 당연히 시간 초과가 발생할 것이라 생각하였다. 그래서 다이나믹 프로그래밍으로 접근하였고, 다음과 같이 점화식을 구할 수 있었다.

2022년 5월 9일
·
0개의 댓글

[ CS / DataBase ] Transaction isolation level

트랜잭션 격리 수준이란, 여러 개의 트랜잭션이 동시에 처리될 때에 트랜잭션 간 고립의 정도를 나타내는 것이다.격리 수준은 다음과 같이 4가지로 나눠진다.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLEREAD UNC

2022년 5월 9일
·
0개의 댓글

[ CS / Data Structure ] 정렬 알고리즘

보통 코테 문제를 풀이할 때는 sort()함수를 사용하여 정렬하지만, 정렬을 실제로 구현하는 데에는 많은 방법이 존재한다. 정렬 알고리즘의 종류에는 Selection Sort(선택 정렬), Bubble Sort(버블 정렬), Quick Sort(퀵 정렬), Insert

2022년 5월 8일
·
0개의 댓글
post-thumbnail

[ CS / Data Structure ] List vs Array

이번 게시물에서는 리스트(List)와 배열(Array)에 대하여 알아보려고 한다. 리스트는 빈틈없는 데이터 적재에 초점을 맞춘 자료구조이다. 리스트는 원소들 간의 순서가 있는 데이터의 모임이라고 할 수 있다.리스트의 인덱스는 각 원소들의 순서를 나타내는 지표로 사용된다

2022년 5월 8일
·
0개의 댓글
post-thumbnail

[ CS / Data Structure ] Map

이번 게시물은 자료구조 중 Map과 HashMap, TreeMap의 차이에 대해 알아보려고 한다.Map은 interface의 종류이다. Key와 Value를 가지는 자료형으로, Key값의 중복은 허용하지 않으며, java.util 패키지에 여러 집합들을 사용하기 위한

2022년 5월 8일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 14923번 미로 탈출

이번 문제는 BFS를 통해 해결하였다. 처음에는 문제를 보자마자 벽을 없애는 모든 경우에 대하여 bfs 함수를 돌리는 것으로 생각하고 구현을 하였다. 그러나 N과 M의 범위가 커서 시간 복잡도가 터져 시간 초과가 발생하였다. 그래서 이번에는 bfs 함수 내에서 magi

2022년 5월 8일
·
0개의 댓글