728x90
전체 글

전체 글

    [SW Expert] [모의 SW 역량테스트] 1953번 탈주범 검거 (Java)

    SW Expert [모의 SW 역량테스트] 1953번 탈주범 검거 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq bfs를 많이 해봐서 그런가 이제 이런 유형의 문제는 익숙한 듯하다. Queue에 탈주범이 위치해 있는 좌표값을 넣는다. 탈주범이 방문했던 곳은 다시 넣지 않으므로, 탈주범이 해당 시간동안 가장 멀리 갈 수 있는 곳의 좌표가 들어가게 된다. 본 문제에서는 특이한 조건이 있었는데, 파이프의 종류에 따라 갈 수 있는 곳이 달라진다. 파이프를 연결하기 위해서 해당 위치에서 파이프가 연결된 곳의 정보를 status로 지정해줬다. 북쪽부터 시작하여 시계방향으로 0, 1, 2, 3..

    [SW Expert] [모의 SW 역량테스트] 5656번 벽돌 깨기 (Java)

    SW Expert [모의 SW 역량테스트] 5656번 벽돌 깨기 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo 정답률 보고 들어갔다가 큰 코 다쳤던 문제이다. dfs와 bfs를 함께 적용해야 한다. 구슬을 N번 쏠 수 있고, 최대한 많은 벽돌을 깨야 하기 때문에 모든 경우의 수를 확인해봐야 한다. 전체적인 흐름으로는, 0. 초기에 Queue에 int[][] map을 담는다. 1. Queue에서 map을 꺼낸 뒤, 0번째 행부터 우측으로 하나씩 움직이며 구슬을 떨어뜨린다. 2. 구슬이 떨어진 벽돌을 기준으로 깨질 수 있는 모든 벽돌을 제거한다. 3. 남아 있는 벽돌들을 밑으로 떨어뜨..

    [SW Expert] [모의 SW 역량테스트] 5650번 핀볼 게임 (Java)

    SW Expert [모의 SW 역량테스트] 5650번 핀볼 게임 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo 모의 SW 역량테스트 중 하나인 핀볼 게임이다. 어렸을 때 핀볼 게임을 해봤던 사람이라면 문제 이해하는 것은 쉬울 것이다. 게임판 안에는 총 5가지의 블록과 웜홀, 블랙홀이 들어 있다. 장애물에 부딪히며 움직이다가 블랙홀에 빠지거나 제자리로 돌아오면 게임이 끝나게 된다. 모든 경우의 수를 다 따져봐야 하는 브루트 포스 문제이다. 장애물이 없는 모든 구역에서 상하좌우로 핀볼을 움직여야 한다. 이번 문제에서 주요 함수로는 방향을 바꿔주는 changeDir 함수와 핀볼이 움직이..

    [백준] 1062번 가르침 (Java)

    백준 1062번 가르침 : https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문자로만 이루어져 있고, 길이가 8보다 크거나 같고, 15보다 작거나 같다. 모든 단어는 중복되지 않는다. www.acmicpc.net 은 브루트 포스, 시뮬레이션 문제이다. 입력으로 단어의 개수(N)와, 김지민이 가르치는 글자의 개수(K)가 주어진다. 문제에서 특이한 조건이 하나 있는데, 모든 단어는 "anta"로 시작되고 "tica"로 끝난다는 점이다. 따라서 a, c, i, n, t는 김지..

    [백준] 15683번 감시 (Java)

    백준 15683 감시 : https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 www.acmicpc.net 입력은 사무실의 크기와 CCTV의 종류 및 위치가 주어진다. CCTV는 종류에 따라 감시할 수 있는 방법이 다르다..

    [스프링] AWS S3에 이미지 업로드 하기

    spring boot로 서비스를 구축할 때 반드시 구축해야 할 것이 정적 파일 업로더이다. 이번 포스팅에는 AWS S3와 연동하여 이미지를 업로드 해볼 것이다. AWS S3 bucket 생성 [AWS -> S3 -> 버킷 만들기]로 들어와 새로운 버킷을 만든다. 버킷을 만들 때, 권한을 수정한다. 권한을 수정하지 않고 파일을 업로드하면, 퍼블릭 액세스가 차단된 상태이기 때문에 아래의 403 에러가 발생한다. Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: ~~~ ; S3 Extended Request ID: ~~~) 따라서 예제에서는 퍼블릭 엑세스 차단 해제를 하고, 버킷 정책을 설정하는 방..

    [백준] 5397번 키로거 (Java)

    백준 5397번 키로거 : https://www.acmicpc.net/problem/5397 5397번: 키로거 문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 테 www.acmicpc.net 키보드의 입력을 통해 비밀번호를 찾는 문제이다. 처음엔 StringBuilder의 insert 함수를 사용해 중..

    [백준] 12100번 2048 (Easy) (Java)

    백준 12100번 2048 (Easy) : https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 설명 2048은 블록을 움직이면서 같은 블록들끼리 합치면서 최대한 큰 수를 만들어 내는 게임이다. 실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다. 이동은 상하좌우 네 방향으로만 이동..

728x90