GitHub 자세히보기

알고리즘 14

[Programmers] 124 나라의 숫자 for JAVA

문제 바로가기 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제풀이 1. 처음 풀이 124로만 숫자를 나타낼 수 있다는 점에서 124나라는 3진수를 사용한다는 것을 알 수 있다. 다만, 3진수가 012가 아닌 124로 이루어져 있다. 구현 1. country 배열에 숫자 0, 1, 2, 4로 초기화한다. 2. n > 0 인 경우, 반복 2-1. n을 3으로 나눈 나머지가 0이면, 결과에 4를 붙이고 n은 3으로 나눈 후 1을 뺌 2-2. 나머지가 0이 아니면, 결과에 country 배열의 나머지번째를 붙이고 n은 3으로 나눔 3. 결과 출력 class Solution { public String solution(int n) { String answer = ""; int[] co..

[Programmers] 숫자 문자열과 영단어 for JAVA - Map vs String

문제 바로가기 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문제풀이 숫자와 영단어를 대응시켜야한다는 관점에서 저는 Map을 사용했습니다. 하지만 대부분의 문제후기를 보면 String의 replaceAll() 메소드를 사용하신 것을 확인할 수 있습니다. 두가지 풀이에 대해 살펴보겠습니다. 1. Map 적용 숫자의 일부 자릿수를 영단어로 바꾸는 문제이다. 숫자에 대응하는 영단어를 Map에 저장한다. 이를 사용하여 for문을 돌며 영단어를 숫자로 변환한다. 구현 1. 단어-영단어를 Map 에 초기화 ..

[BOJ] 경쟁적 전염 for Java - PriorityQueue를 적용한 풀이

문제 바로가기 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 문제풀이 시험관에 존재하는 바이러스는 1초마다 번호순으로 증식되기 때문에 BFS를 적용하도록 한다. PriorityQueue를 사용하여 시간/번호순으로 정렬이 가능하도록 Virus 클래스에 Comparable 인터페이스를 적용한다. 구현 0. Virus 클래스에 Comparable을 적용하여, 시간순 -> 번호순으로 큐가 정렬되도록 함 1. 바이러스가 존재하면 PriorityQueue에 offer 2-1. X, Y 좌표..

Algorithm/BOJ 2022.03.02

[프로그래머스] 신고 결과 받기 for Java - HashMap 를 적용한 풀이

문제 바로가기 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문제풀이 신고한 사람과 신고당한 사람을 담을 자료구조가 필요하다. 중복을 방지하기 위해 HashMap을 사용했다. 또한, 신고한 사람은 본인이 신고한 사람의 집합도 가지고 있어야하기 때문에 이를 저장하기 위해 Set 자료구조를 사용했다. 변수 - reporter : 입력받은 report 중 신고를 한 유저 - singo : 입력받은 report 중 신고를 당한 유저 - reporterArr : 신고한 사람을 저장하는 HashMap - key..

[BOJ] 2606번 바이러스 for JAVA BFS 활용한 풀이

문제 바로가기 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제풀이 바이러스에 감염된 컴퓨터를 확인하기 위해 컴퓨터끼리의 연결상태를 확인해야한다. 컴퓨터끼리의 연결상태를 인접행렬로 표시한다.(연결되어있으면 1로 표기 ) 감염된 컴퓨터를 큐에 넣고, 큐가 빌때까지 반복하면서 해당 컴퓨터와 연결된 컴퓨터를 감염시킨다.(BFS) 변수 computer : 컴퓨터의 감염여부를 담는 boolean 배열 map : 컴퓨터끼리 연결상태를 나타나는 2차원 인접행렬 q : 바이러스에 감염된 컴퓨터를 확인하기 위해 BFS에서 사용..

Algorithm/BOJ 2022.01.17
1 2 3