https://www.acmicpc.net/problem/2539 2539번: 모자이크 수찬이는 선생님을 도와서 교실 벽면을 장식할 모자이크 그림을 그리기로 하였다. 이를 위하여 직사각형 모양의 큰 도화지를 준비하여 교실 벽에 붙이고 1cm 간격으로 가로선과 세로선을 그려서 www.acmicpc.net 문제 입력 조건에서 행과 열의 개수가 100만이라 2차원 배열을 사용하면 메모리초과가 난다. 또한 가장 작은 색종이의 크기를 구하는 문제인데 각 색종이의 크기마다 도화지에 대해 반복문을 돌리면 시간초과가 난다. 따라서 도화지 전체에 대해서가 아니라 잘못 칠해진 페인트에 대해서 반복문을 돌리고, 색종이의 크기에 대해서 이분탐색을 수행하여 색종이의 최소 크기를 구하였다. 잘못 칠해진 페인트의 좌표를 pair로..
전체 글
HTTP 상태코드 : 클라이언트가 서버로 보낸 요청의 처리 상태를 응답에서 알려주는 기능. 1xx (Informational) 요청이 수신되어 처리중 2xx (Successful) 요청 정상 처리 3xx (Redirection) 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) 클라이언트의 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음. 5xx (Server Error) 서버의 오류, 서버가 정상 요청을 처리하지 못함. 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하는 경우 - 클라이언트는 상위 상태코드로 해석해서 처리(2xx대, 3xx대 등) - 299와 같은 인식할 수 없는 상태코드가 반환되면 2xx(Successful)로 받아 요청을 정상 처리했다고 해석. - 따..
Ssh로 ec2에 접속하여 build를 할 때 아무리 기다려도 빌드가 끝나지 않는 경우가 있다. git clone으로 프로젝트를 가져와 빌드했는데 빌드가 끝나지 않길래 환경설정을 잘못해 줘서 충돌이 난 건가 의심했는데 알고 보니의 메모리가 부족해서 일어난 문제였다. Aws ec2 프리티어인 t2.micro의 경우 램이 1gb이다. 1기가 가지고 스프링을 빌드하기엔 역부족이었나 보다.메모리가 더 큰 인스턴스를 사용하면 깔끔하게 해결할 수 있지만 과금 폭탄이 무섭기 때문에 차선책을 이용하여 해결했다. 바로 가상메모리를 사용하는 방법이다. Ec2의 디스크 용량을 램처럼 사용할 수 있다. 리눅스에서는 SWAP 메모리를 지정하여 HDD의 일부를 RAM처럼 사용할 수 있게 해 준다. 램을 증설한 효과를 얻는 것..
1. 소개 같은 지역에 속해 있는 사람들과 주변 상권에 대한 정보를 공유할 수 있는 서비스이다. 네이버지도나 카카오맵과 같은 지도 서비스에서는 얻기 힘든, 좀 더 사소하지만 식당 결정에는 영향을 미치는 정보들을 친구들과 공유하는 것을 목표로 한다. 친구 관계를 맺은 사람들과 공유하기 때문에 신뢰도가 높고 정확한 정보를 얻을 수 있을 것으로 기대한다. 2. 아이디어 구상 계기 군대를 전역하고 2년 만에 다시 학교로 돌아가보니 주변 상권이 너무 많이 바뀌어 있었다. 없어지고 새로 생긴 식당도 많았으며 기존의 식당들도 메뉴 구성이나 가격 등에 변화가 있어 내 기억과는 사뭇 달라서 당황한 적도 있었다. 바뀐 정보들을 친구들과 공유하면 이렇게 식당에서 당황하는 일을 줄이고 유용하게 활용할 수 있지 않을까?라는 생..
https://www.acmicpc.net/problem/2538 2538번: 모눈종이 자르기 첫째 줄에는 모눈종이의 가로 길이와 세로 길이를 나타내는 자연수가 빈칸을 사이에 두고 주어진다. 가로와 세로의 길이는 모두 200000 이하이다. 둘째 줄에는 오려내고자 하는 다각형의 꼭짓점 www.acmicpc.net 완전 구현문제였다. 처음에는 조각을 판정하고 각 조각의 칸을 dfs로 돌며 모눈종이의 경계선 또는 다각형의 둘레에 접하는 수만큼 카운트하여 둘레를 직접 계산하는 것을 구현했는데 입력 조건이 가로 세로 길이가 20만이어서 시간초과가 난다는 사실을 깨달았다. 그래서 입력받은 다각형의 꼭짓점 위치를 바탕으로 조각의 둘레를 계산하는 방법으로 바꿨다. 문제에서, 다각형의 꼭짓점을 입력받을 때 시계반대방향..
https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 2차원 지도에서 특정조건을 만족하는 칸부터 상태가 변하며 모든 칸의 상태가 변할 때까지 걸리는 시간을 출력하는 문제이다. 전형적인 그래프 탐색에 구현이 붙은 문제이다. 1시간이 지날때마다 지도에서 몇 가지를 체크하는데, 외부 공기. - 치즈 내부에도 공기가 있는데 내부 공기 칸의 테두리의 치즈가 녹은 경우, 해당 공기 칸을 외부 공기로 바꿔줘야 한다. - airCheck()로 구현. ..
https://www.acmicpc.net/problem/2528 구현, 시뮬레이션 문제이다. 문제에서 제시하는 상황과 조건에 맞게 사다리를 오르는 동작을 구현하여 풀었다. Pair로 벡터를 만들어 각층마다 사다리의 왼쪽 끝점의 좌표, 오른쪽 끝점의 좌표를 저장했고, 사다리의 처음 위치는 사다리의 초기 이동 방향(d)에 따라 결정되기 때문에 d값에 따라 각층 사다리의 위치와 방향을 초기화시켜 줬다. 그리고 while(true) 문 안에서 사다리들이 1단위시간에 1칸씩 좌우로 움직이고 각 단위시간마다 철수가 다음 층으로 올라갈 수 있는지 체크하고 올라갈 수 있으면 y값을 증가시켜 줬다. 위 사진과 같이 두 층의 사다리 끝점에 맞물리는 경우에도 위 층으로 이동할 수 있다는 사실을 주의해야 한다. #inclu..