GitHub 자세히보기

자바 19

[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

[프로그래머스] k진수에서 소수 개수 구하기 for JAVA

문제 바로가기 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 구현 아이디어 입력받은 n을 k진수로 변환하는 과정이 필요 P가 조건에 해당하는지 확인(P 사이에 0이 있을 수 없음) 2-1. 0P0 2-2. P0 2-3. 0P 2-4. P P가 소수인지 확인 조건에 맞으면 answer를 1씩 증가 변수 sb : n을 k진수로 변환하는 과정에서 사용할 변수(StringBuilder) change : k진수로 변환된 문자열 값 tmp : 변환된 수 안의 P(lo..

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

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

1 2 3 4