본문 바로가기
반응형

Algorithm25

[프로그래머스] Lv1. 신고 결과 받기 - 자바(JAVA) 문제 설명신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다.한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다.유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다.다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2(즉, 2번 .. 2025. 6. 8.
[알고리즘] 알고리즘 중간 평가 회고 및 풀이 정리 (JAVA 풀이 5문제) ☑️ 1번 문제 - 신고 결과 받기 (HashMap, HashSet)🔍 문제 요약k번 이상 신고된 유저는 정지되고, 그 유저를 신고한 사람들이 신고 처리 결과 메일을 받은 횟수를 구하는 문제🧩 내 풀이import java.util.*;class Solution { public int[] solution(String[] id_list, String[] report, int k) { //신고 당한 사람 -> 신고한 사람 Map> reportMap = new HashMap(); //받은 메일 수 Map mailCount = new HashMap(); //초기화 for (String i.. 2025. 5. 31.
[프로그래머스] Lv2. 게임 맵 최단거리 - 자바(JAVA) 문제 설명ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다.위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다.캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다.첫 번째 방법은 11개의 칸.. 2025. 5. 28.
[프로그래머스] Lv2. 올바른 괄호 - 자바(JAVA) 문제 설명괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고,올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항문자열 s의 길이 : 100,000 이하의 자연수문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.문제 파악괄호가 올바르게 짝지어서 열리고 닫혔는지 확인하는 문제이다.올바른 괄호면 true를 리턴하고, 아니면 false를 리턴한다. 접근 방법열.. 2025. 5. 26.
[리트코드] Easy 1. Two Sum - 자바(JAVA) 문제 설명정수 배열 nums와 정수 target이 주어졌을 때,그 합이 target이 되는 두 숫자의 인덱스를 반환하시오. 각 입력에는 정확히 하나의 해답이 존재함을 가정할 수 있으며,같은 요소를 두 번 사용할 수는 없습니다. 정답은 아무 순서로나 반환해도 됩니다. 제한사항2 - 10⁹ - 10⁹ 유효한 정답은 오직 하나만 존재합니다. 문제 파악배열에서 숫자 2개를 더했을 때 타겟이 되는 인덱스를 찾는 문제이다. 접근 방법반복문 2개를 써서 하나씩 더한다. 코드 구현import java.util.*;class Solution { public int[] twoSum(int[] nums, int target) { int sum = 0; for (int i=0; i모든 조합 확.. 2025. 5. 25.
[프로그래머스] Lv2. 전력망을 둘로 나누기 - 자바(JAVA) 문제 설명n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절댓값)를 return 하도록 solution 함수를 완성해 주세요. 제한사항n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다.wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의 v.. 2025. 5. 23.
반응형