▼ Why ? 이번 문제는 이전 문제에서 사용한 Stack과는 다른 자료구조를 활용해야 할 것 같아 한 번 풀어보았다 ▼ 공주 구하기 문제 정보 정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 n명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 n번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다. 한 왕자가 k(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다. 그..
▼ Why ? 스택(Stack) 관련 내용을 정리하면서 스택을 활용하기에 좋은 문제 유형 중 하나가 짝꿍(Pair)을 찾고 이웃했을 때 충돌해서 사라지는 경우라 했는데, 이번에 이것이 어떤 경우를 말하는 것인지 알기 위해 관련 문제를 하나 풀어봤다. ▼ Backspace 문제 정보 매개변수 s에 문자열이 주어지면 이웃한 두 개의 문자가 같으면 두 문자를 제거합니다. 이 과정을 반복해서 최종적으로 남는 문자만으로 이루어진 문자열을 반환하는 프로그램을 작성하세요. 만약 "acbbcaa"라는 문자열이 주어진다면 최초 bb가 연속되어 있어 제거하고 나면 "accaa"가 되고, 다시 cc가 연속되어 제거하면 "aaa"가 되고 "aa"연속되어 제거하면 "a"가 최종적으로 남습니다. 제한사항 문자열 s의 길이는 10..
▼ Why ? 일단, 스택을 활용하는 기본 문제부터 풀어보려고 한다. ▼ Backspace 문제 정보 현수는 주어진 문자열의 문자 순서대로 키보드 자판의 문자를 쳐 화면에 s문자열을 작성합니다. 문자열에는 '#'문자가 있는데 이 문자는 Backspace키를 의미합니다. 매개변수 s에 현수가 키보드 자판을 쳐야할 순서인 문자열이 주어지면 현수가 s문자열을 작성 했을 때 최종적으로 화면에 작성된 문자열을 반환하는 프로그램을 작성하세요. 화면에는 적어도 문자 한 개는 작성되어 있습니다. 제한사항 문자열 s의 길이는 1,000을 넘지 않습니다. 입출력 예 어떻게 해결해야 할까 ? 일반적인 Backspace의 동작 원리는 Stack과 별반 다르지 않기 때문에, Stack의 연산을 활용해보자 문자열에서 받아온 문자..
▼ Why ?이제 스택, 큐, 정렬, 그리고 그리디 알고리즘을 활용하는 문제를 풀어보려고 한다. 그 전에 일단 스택, 큐, 정렬에 대한 개념을 간단하게 정리해보고(좀 더 자세한 내용은 "[JAVA] 컬렉션 프레임웍 ( Collections Framework )" 참고), 그리디 알고리즘이 무엇인지 공부해보려고 한다.▼ 스택 (Stack) 스택(Stack) ?한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In Fisrt Out) 형식의 자료구조이다 스택(Stack)의 연산Object push(Object item) : 객체(item) 하나를 Stack의 가장 위에 추가Object pop() : Stack에서 가장 위에 저장된 객체를 반환하고 삭제Object peek() : Stack의 가장 위..
▼ Why ?HashMap class 사용에 어느정도 익숙해진 것 같아, 이번엔 이전 문제들처럼 하나의 HashMap 객체를 생성해서 해결하는 것이 아닌 좀 더 난이도가 있는 문제를 풀어보려고 한다.▼ 신고 결과 받기 문제 정보신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다.한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다.유..
▼ Why ? 이번 문제는 문자나 숫자가 아닌 String 배열 입력받는 문제라 한 번 풀어보려고 한다 ▼ 추억 점수 문제 정보 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가..