[백준] 1189번 컴백홈 자바 풀이
·
알고리즘
문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 7011 3924 3058 55.109% 문제 한수는 캠프를 마치고 집에 돌아가려 한다. 한수는 현재 왼쪽 아래점에 있고 집은 오른쪽 위에 있다. 그리고 한수는 집에 돌아가는 방법이 다양하다. 단, 한수는 똑똑하여 한번 지나친 곳을 다시 방문하지는 않는다. cdef ...f ..ef ..gh cdeh cdej ...f bT.. .T.e .Td. .Tfe bTfg bTfi .Tde a... abcd abc. abcd a... a.gh abc. 거리 : 6 6 6 8 8 10 6 위 예제는 한수가 집에 돌아갈 수 있는 모든 경우를 나타낸 것이다. T로 표시된 부분은 가지 못하는 부분이다. 문제는 R x C 맵에 못가는 부분이 주..
싱글 스레드에서 비동기 요청이 가능할까?
·
TIL
개요 SSAFY 계절학기 강의 수강 중 싱글스레드에서 비동기 요청을 할 수 있다는 내용이 있었는데, 필자가 개발하면서 싱글 스레드 환경에서 비동기 요청을 한 기억이 없어서 그런지 잘 이해가 되지 않았다. 이를 이해하고자 문서를 작성해본다. 자바스크립트에서 싱글 스레드와 비동기 요청 아래와 같이 “싱글스레드 비동기” 라는 키워드로 구글에 검색을 해봤다. 그러나 이 부분은 자바스크립트 언어가 어떻게 싱글 스레드에서 비동기 요청 처리를 가능하게 하는 것인지 말해주는 내용이 대다수 였다. 글들을 읽어보면 결국에는 자바스크립트 언어 자체는 싱글 스레드로 동작하는 것이고, 비동기 요청의 경우 Browser API를 통해 비동기 요청을 처리 후 콜백 처리를 해주는 것으로 이해했다. 따라서, 자바스크립트도 결국에는 완..
[프로그래머스] 디스크 컨트롤러 자바 풀이
·
알고리즘
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42627 풀이 우선순위 큐를 활용하여 문제를 풀었음. (정렬이 필요하므로) 정렬 작업큐 작업큐의 경우 기본적으로 작업이 들어온 순서대로 정렬되어야 한다. 또한, 같은 시간에 작업이 들어온 경우, 작업 시간이 더 짧은 작업을 먼저 처리하는것이 효율적이다. 대기큐 작업 시간이 짧은 순서대로 정렬해주자. 작업 고르기 현재 대기중인 작업이 있는 경우 대기 큐에서 작업시간이 가장 짧은 작업을 고른다. 만약 현재 시간보다 작업 큐에서 꺼낸 작업의 시작시간이 더 크다면, 시간을 꺼낸 작업의 시작시간으로 변경해준다. (새로운 작업은 현재 시간보다 100초 이후에 시작될수도 있다.) 현재 대기중인 작업이 없는 ..
[백준] 2636번 치즈 자바 풀이
·
알고리즘
문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 29631 16632 11947 55.129% 문제 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓여 있지 않으며 치즈에는 하나 이상의 구멍이 있을 수 있다. 이 치즈를 공기 중에 놓으면 녹게 되는데 공기와 접촉된 칸은 한 시간이 지나면 녹아 없어진다. 치즈의 구멍 속에는 공기가 없지만 구멍을 둘러싼 치즈가 녹아서 구멍이 열리면 구멍 속으로 공기가 들어가게 된다. 의 경우, 치즈의 구멍을 둘러싼 치즈는 녹지 않고 ‘c’로 표시된 부분만 한 시간 후에 녹아 없어져서 와 같이 된다. https://..
SPOPARTY 서비스 파일 업로드, 삭제 장애 대응
·
TIL
개요 공통 프로젝트로 진행했던 SPOPARTY 서비스가 SSAFY에서 제공해주는 서버 기간 만료로 인해 다운되었었는데, 중간중간 서비스를 개발하면서 팀원들과 함께 게시판을 잘 이용했었다. 그래서 도메인 구매하여 서비스를 다시 올려놨었는데… 장애 발생 파일 업로드가 불가능한 현상 + 파일 삭제가 불가능한 현상 두가지가 함께 터져서 로그를 보면서 추적 해봤다. 파일 업로드 불가능 현상 파일 업로드의 경우 제보자가 보내준 내용 그대로였다. nginx는 client_max_body_size가 1MB가 기본으로 설정되어 있었는데, 기존 서버에는 openvidu 컨테이너 내부 nginx에서 설정되어 있었던 것으로 보인다. 따라서 현재 서버의 nginx 설정에 아래의 옵션을 추가한 후 정상적으로 업로드가 가능해졌다...
[백준] 2638번 치즈 자바 풀이
·
알고리즘
문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 26868 12675 9471 46.220% 문제 N×M의 모눈종이 위에 아주 얇은 치즈가 과 같이 표시되어 있다. 단, N 은 세로 격자의 수이고, M 은 가로 격자의 수이다. 이 치즈는 냉동 보관을 해야만 하는데 실내온도에 내어놓으면 공기와 접촉하여 천천히 녹는다. 그런데 이러한 모눈종이 모양의 치즈에서 각 치즈 격자(작 은 정사각형 모양)의 4변 중에서 적어도 2변 이상이 실내온도의 공기와 접촉한 것은 정확히 한시간만에 녹아 없어져 버린다. 따라서 아래 모양과 같은 치즈(회색으로 표시된 부분)라면 C로 표시된 모든 치즈 격자는 한 시간 후에 사라진다. 와 같이 치즈 내부에 있는 공간은 치즈 외부 공기와 접촉하지 않는 것..
[백준] 파이프 옮기기 1 자바 풀이
·
알고리즘
문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 (추가 시간 없음) 512 MB 39509 18717 12827 46.147% 문제 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다. 파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. ..
Jenkins Container 접속 http 경로 변경하기
·
TIL
개요 Jenkins Container 환경 설정 시 웹 페이지의 경로를 변경하고, nginx 프록시 할 수 있도록 구성하는 방법을 알아보자. Host OS 내에 jenkins container를 이미 구성한 상태에서 접속할 수 있는 경로만 변경하는 작업을 포스팅 한다. 환경 필자의 경우 Host OS(Ubuntu Linux) 위에 Jenkins Container를 구성했고, Host OS에 Nginx를 설치하여 리버스 프록시를 활용하여 Jenkins 관리 웹 페이지로 이동시키게끔 구성했다. Jenkins Container 설정 StackOverflow의 글에서 경로를 변경하기 위해서 환경변수를 설정할 수 있다는 글을 확인했다. Change jenkins container deployment root pa..
[백준] 14503번 로봇 청소기 자바 풀이
·
알고리즘
문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 61274 33242 22550 53.653% 문제 로봇 청소기와 방의 상태가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 방은 NxM 크기의 직사각형으로 나타낼 수 있으며, 1x1 크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북 중 하나이다. 방의 각 칸은 좌표 (r, c)로 나타낼 수 있고, 가장 북쪽 줄의 가장 서쪽 칸의 좌표가 (0, 0) 가장 남쪽 줄의 가장 동쪽 칸의 좌표가 (N-1, M-1)이다. 즉, 좌표(r, c)는 북쪽에서 (r+1) 번째에 있는 줄의 서쪽에서 (c+1) 번째 ..
[백준] 11726번 2 x n 타일링 자바 풀이
·
알고리즘
문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 166553 64421 47778 36.624% 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 풀이 아래처럼 실제로 직사각형을 채우는 방법을 나열 해본 후 n번째 직사각형을 채우는 방법은 n-1번째와 n-2번째의 합이라는 것을 알 수 있었다. 이 후 방법의 수를 10,007로 나누어 출력해줬다. 1 - 1 1 2 - 2 1 1 2 2 3 - 3..