본문 바로가기

분류 전체보기

(73)
[백준] Q9079 동전게임 JAVA https://www.acmicpc.net/problem/9079 9079번: 동전 게임 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 세 줄로 이루어지며, 한 줄에 세 개의 동전모양이 주어지는데, 각각의 동전 표시 사이에는 하나의 공백이 www.acmicpc.net 1. 문제의 유형 및 이해 완전탐색, bit연산 동전을 3행 3열로 놓을 때 앞면을 H 뒷면을 T라고 하자. 게임의 목적은 모든 동전을 같은 면으로 보이도록 하게하는 것이다. 한 번에 3개의 동전을 뒤집는 행위를 '한번의 연산'으로 셀 때 최소 횟수로 실행하고 싶다. 가로, 세로, 대각선 (항상 3개씩 뒤집어야함) 연산의 개수는 총 가로 3줄, 세로 3줄 대각선 2줄로 한번의 상태에서 총 8..
[백준] Q2204 도비의 난독증 테스트 JAVA https://www.acmicpc.net/problem/2204 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net 1. 문제의 유형 및 이해 구현, 정렬 대소문자를 구분하지 않고 사전순으로 가장 앞서는 단어를 정답으로 한다. apPle Bat AnT가 주어질 때 Ant apPle Bat 순으로 정렬이 된다. 각 테스트 케이스마다 주어지는 단어 개수 N 는 1000이하이다. 각 단어는 길이가 최대 20인 단어가 주어지고, 대소문자 구분을 없앴을 때 같은 단어는 주어지지 않는다. 2. 문제 접근 방법 문제에서 주..
02. Servlet 에서 Spring Web MVC로 바꿔보자 기존 프로젝트에서의 기능과 DB 등을 분석하고자 했고, Path들을 맞추어서 웹 사이트를 탐색해보는 것이 목표였다. 프로젝트에서 제공하고자 하는 기능은 다음과 같았다. - 꽃 검색 기능 ( 꽃말을 이용한 검색, 꽃 이름을 이용한 검색) - 꽃 추천하기 (static file posting 형식) - 심리 테스트 (static file) - 로그인 및 회원가입 일단 문제점이 여럿 있었는데 그 중 몇개만 꼽자면 - .jsp 파일로 접근하고, 모두 드러나있다. - Controller에 의존하기보다 각각의 jsp파일이 서로 연결되어 있는 형태가 강하다. - 파일 구조 디렉토리에 문제가 많다. 이 중 꽃 검색 기능과 로그인 및 회원가입 파트를 맡아서 진행했었기도 하고, static file 정리하면서 지치는 것보..
[백준] Q16566 카드게임 JAVA https://www.acmicpc.net/problem/16566 16566번: 카드 게임 첫째 줄에 세 개의 자연수 N, M, K가 주어진다. (1 ≤ M ≤ N ≤ 4,000,000, 1 ≤ K ≤ min(M, 10,000)) 다음 줄에 카드의 번호를 나타내는 M개의 자연수가 주어진다. 각각의 수들은 1 이상이고 N 이하이며 서로 www.acmicpc.net 1. 문제의 유형 및 이해 이분탐색, 분리 집합(Disjoint set) 문제 내용이 길어서 핵심만 간추리면 다음과 같다. 상대와 카드를 비교하여 내 카드를 어떻게 낼지 정하는 문제이다. 1~N까지 번호가 쓰인 N개의 카드 중 내가 가진 M개의 카드가 주어진다. 총 K번 비교를 하는데 상대가 낼 카드의 번호가 주어진다. 비교한 카드는 없어진다...
[백준] Q2568 전깃줄 -2 JAVA https://www.acmicpc.net/problem/2568 2568번: 전깃줄 - 2 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100,000 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결 www.acmicpc.net 1. 문제의 유형 및 이해 LIS, 이분탐색 다음과 같이 전깃줄이 연결되어 있을 때 서로 교차하지 않도록 최소한의 개수로 전깃줄을 없애려고 한다. 이 때 없애야하는 전깃줄의 최소 개수와 번호를 오름차순으로 나열하기. 한쪽을 기준으로 보았을 때 '교차하지 않는다'라는 말은 기준의 방향성과 동일하게 나열되어 있다 라고 이해할 수 있습니다. 그렇지 않다면 역으로 가서 교차하게 되기 때문입니다. a를..
[백준] Q2342 Dance Dance Revolution JAVA https://www.acmicpc.net/problem/2342 2342번: Dance Dance Revolution 입력은 지시 사항으로 이루어진다. 각각의 지시 사항은 하나의 수열로 이루어진다. 각각의 수열은 1, 2, 3, 4의 숫자들로 이루어지고, 이 숫자들은 각각의 방향을 나타낸다. 그리고 0은 수열의 마 www.acmicpc.net 1. 문제 유형 및 이해 dp 발판을 기준으로 주어지는 수열에 따라 발을 움직여 방향을 맞추어야 한다. 발을 움직일 때는 움직이는 방법에 따라 드는 힘이 다르다. 이 때, 주어지는 수열을 만족시키면서 힘을 가장 적게 사용했을 때의 힘을 찾아보자. 처음에는 그리디라고 생각을 하고 접근해서 순간의 최선을 선택하려고 했다. 하지만, 발이 움직이는 방향에 따라 드는 힘이..
01. 새로 시작하는 것이 오히려 좋을 수 있다. Spring MVC와 JPA 일부분을 수강한 후에 활용해서 프로젝트를 진행하고 싶었다. 재미있는 주제가 떠오르긴 했지만, 그 전에 처참한 이전 프로젝트를 볼 때 마다 다시 짜고 싶다는 생각이 항상 들었었는데, 이번 기회에 바꿔보려고 한다. 2년 전에 웹 프로그래밍 과목을 수강하면서 '꽃 추천 웹 사이트 제작'이라는 팀 프로젝트를 진행했었다. 해당 시즌에 다른 팀 프로젝트도 여럿 겹치면서 미루고 미루다 4일 정도 걸려서 만든 프로젝트였는데, 볼 때 마다 너무 쪽팔리다는 생각이 들었다. 나름 첫번째 웹 사이트 프로젝트였고, 처음 웹에 흥미를 느꼈던 것 같다. 당시에는 추천시스템에 꽃혀서 머신러닝 관련 교육을 수강하러 가기도 했지만, 결국 교육하면서 진행한 프로젝트에서도 웹을 맡았던 것 보면 그 때부터 웹에 ..