본문 바로가기

전체 글

(201)
[JAVA 알고리즘]BAEKJOON 10866번 덱 덱 문제 설명 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없..
사이드 프로젝트 : 중고 거래 플랫폼 - API 명세, ERD 설계 API 명세서 ERD 설계 API 명세서와 ERD 설계는 초기에 고려할 부분들을 열심히 생각을 하고 진행을 하더라도 먼가 정확하게 뒤에 작업들이 어떻게 이루어지는지를 공부를 하면서 코드를 작성해야 하기에 로직 자체가 안 되는 걸 된다고 생각하고 설계를 해둘 수 도 있고 로직을 구현을 못할 수도 있기 때문에 상황에 맞게 변경될 경우 명세서와 ERD도 같이 수정을 하면서 프로젝트를 진행해야겠다. ERD를 설계하면서도 식별자, 비식별자로 구분들 두면서 테이블 간의 관계를 어떻게 할 지를 고민하고 JPA를 사용할 계획이기 때문에 객체로 어떻게 사용해야 할지를 고민을 하니 머릿속이 복잡해지고 관계가 맞는지 안 맞는지 의문이 들지만 설계를 한 데로 작성을 해보면서 엔티티 구성에 문제 발생에 따라 잘 수정해 봐야지 ..
[JAVA 알고리즘]BAEKJOON 9204번 체스 체스 문제 설명 체스에서 비숍은 대각선으로만 움직일 수 있는 말이다. 비숍은 현재 있는 칸과 같은 색상을 가지는 칸은 몇 번 움직이면 이동할 수 있다. (체스판에 다른 말은 없다고 가정한다) 체스판 위의 두 좌표가 주어진다. 이때, 비숍이 한 좌표에서 다른 좌표로 이동할 수 있는지와 그 방법을 구하는 프로그램을 작성하시오. 체스판의 좌표는 글자(A-H)와 숫자(1-8)로 나타내며, 글자는 열에, 숫자는 행에 적혀져 있다. 그림 1 – 체스판, 비숍, 비숍이 한 번에 움직일 수 있는 위치 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 시작 위치 X와 도착 위치 Y가 주어진다. 각 위치는 두 글자가 공백으로 구분되어져 있다. 글자는 열, 숫자는 행이다. 중..
사이드 프로젝트 : 중고 거래 플랫폼 - 시나리오, 유저플로우 분석 주제 검색 및 채팅 기능을 활용해 보기 위한 오프라인 매칭 중고 거래 플랫폼 사이드 프로젝트 진행 시나리오 유저 - 구매자, 판매자 회원가입, 로그인 상품 검색 (상품, 작성자, 내 위치 기반) 상품 등록 댓글 (판매자가 유무 활성화) 채팅 (구매자가 판매자에게 채팅 신청) 판매자가 판매 내역 게시글 즐겨찾기 (찜목록) 판매자 좋아요 (평가) 신고 (차후 고려) 비로그인 유저 상품 검색 관리자 글 관리 권한 신고 관련 (차후 고려) 고객센터 (차후 고려) 유저플로우 분석 한번 사용해본 기술 스택들 및 기능들을 다시 한번 활용해 보면서 새로운 기술들을 사용해 보기 위해 간단한 사이드 프로젝트를 짧게 진행을 하기 위해 마음을 먹었다. 간단한 기능들과 검색, 웹 소켓을 활용한 채팅 기능을 사용해 보기 위해 컨..
[JAVA 알고리즘]BAEKJOON 20166번 문자열 지옥에 빠진 호석 다이나믹 프로그래밍을 이용해서 문제를 해결하는 문제 문자열 지옥에 빠진 호석 문제 설명 하루 종일 내리는 비에 세상이 출렁이고 구름이 해를 먹어 밤인지 낮인지 모르는 어느 여름 날 잠 들기 싫어 버티던 호석이는 무거운 눈꺼풀에 패배했다. 정신을 차려보니 바닥에는 격자 모양의 타일이 가득한 세상이었고, 각 타일마다 알파벳 소문자가 하나씩 써있다더라. 두려움에 가득해 미친듯이 앞만 보고 달려 끝을 찾아 헤맸지만 이 세상은 끝이 없었고, 달리다 지쳐 바닥에 드러누우니 하늘에 이런 문구가 핏빛 구름으로 떠다니고 있었다. 이 세상은 N행 M열의 격자로 생겼으며, 각 칸에 알파벳이 써있고 환형으로 이어진다. 왼쪽 위를 (1, 1), 오른쪽 아래를 (N, M)이라고 하자. 너는 아무 곳에서나 시작해서 상하좌우나 대각..
[JAVA 알고리즘]BAEKJOON 16432번 떡장수와 호랑이 DFS를 이용해서 문제를 해결하는 문제 떡장수와 호랑이 문제 설명 떡장수 동희는 매일 새벽에 갓 만든 떡을 들고 산을 넘어 장터로 가서 떡을 팝니다. 동희가 만드는 떡의 종류는 1번부터 9번까지 있습니다. 산에는 동희가 나타나기를 기다렸다가 동희를 협박하여 떡을 하나 가져가는 호랑이가 살고 있습니다. 이 호랑이는 입맛이 까다로워 전날에 먹었던 떡과 같은 종류의 떡이면 먹지 않습니다. 만약 줄 수 있는 떡이 없다면 동희는 호랑이에게 잡아먹히고 맙니다. 동희는 N일 동안 떡을 팔러 매일 장터에 나가야 합니다. 동희가 만드는 떡들의 종류는 재료 공급 사정에 따라 종류가 매일 달라집니다. 동희가 N일 동안 호랑이에게 잡아먹히지 않도록 호랑이에게 줄 떡들을 골라주세요. 제한사항 없음 입력 첫 번째 줄에 동희가 떡..
[JAVA 알고리즘]BAEKJOON 16925번 문자열 추측 문자열을 이용해서 문제를 해결하는 문제 문자열 추측 문제 설명 길이가 N인 문자열 S가 있다. S는 알파벳 소문자로만 이루어져 있다. 문자열 S의 길이가 N-1이하인 모든 접두사와 접미사를 이용해, 원래 문자열 S를 만들어보려고 한다. S의 모든 접두사와 접미사가 주어졌을 때, 원래 문자열 S가 무엇인지 구하는 프로그램을 작성하시오. 제한사항 없음 입력 첫째 줄에 문자열 S의 길이 N(2 ≤ N ≤ 100)이 주어진다. 다음 2N-2개의 줄에 걸쳐서 문자열 S의 접두사와 접미사가 한 줄에 하나씩 주어진다. 모든 접두사와 접미사가 주어지기 때문에, 길이가 i(1 ≤ i ≤ N-1)인 문자열의 개수는 항상 2개이다. 출력 첫째 줄에 입력으로 주어진 접두사와 접미사를 이용해 만들 수 있는 문자열 S를 출력한다..
[JAVA 알고리즘]BAEKJOON 2470번 두 용액 이진 탐색을 이용해서 문제를 해결하는 문제 두 용액 문제 설명 KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. 같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다. 예를 들어, 주어진 용액들의 특성값이 [-2, 4, -99, -1, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98인 용액을..