본문 바로가기

Algorithm Study

(31)
[Java Algorithm] 프로그래머스: 해시 _ 완주하지 못한 선수 [문제]수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.[제한사항]마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다. [Algorithm]1. HashMap을 이용해 참가자를 set     ➡️ 동명이인의 참가자가 ..
[Java Algorithm] 프로그래머스: 해시 _ 폰켓몬 [문제]당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.1. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택2. 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택3..
[Java Algorithm] 프로그래머스 Lv.0 _ 조건 문자열 [문제] 문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다. 두 수가 n과 m 이라면, ">", "=" : n >= m "", "!" : n > m "")){ answer = n >= m ? 1 : 0 ; } else if (eq.equals("=") && ineq.equals("")){ answer = n > m ? 1 : 0 ; } else if (eq.equals("!") && ineq.equals("
[Java Algorithm] 프로그래머스 Lv.0 _ 홀짝에 따라 다른 값 반환하기 [문제] 양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해주세요. [Algorithm] 조건문과 반복문 활용 1. 반복문으로 1부터 n까지 코드 반복 2. n 이 홀수인지 짝수인지 판별하는 조건 추가 3. n 이하의 정수 중 홀수와 짝수를 판별하는 조건 추가 [Code] class Solution { public int solution(int n) { int sum = 0; for(int i=1; i
[Java Algorithm] 프로그래머스 Lv.0 _ 두 수의 연산값 비교하기 [문제] 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여쓴 값을 반환합니다. 예를 들면 다음과 같습니다. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a⊕b 와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해주세요. 단, a⊕b 와 2 * a * b 가 같다면 a⊕b 를 return 합니다. [Algorithm] 형변환에 관련된 문제 정수와 문자열의 형태를 바꾸는 메서드 다양하게 활용해보기 1. Integer.toString(Int형) (정수 ➡️ 문자열) 2. String.valueOf(int형) (정수 ➡️ 문자열) 3. Integer.parseInt(string형) (문자열 ➡️정수) [Code] // 형변환 Integer.p..
[Java Algorithm] 프로그래머스 Lv.0 _ 더 크게 합치기 👿 문제 👿 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여쓴 값을 반환합니다. 예를 들면 다음과 같습니다. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a⊕b 와 b⊕a 중 더 큰 값을 return하는 solution 함수를 완성해주세요. 단, a⊕b 와 b⊕a 가 같다면 a⊕b 를 return 합니다. [Algorithm] 형변환에 관련된 문제 정수와 문자열의 형태를 바꾸는 메서드 다양하게 활용해보기 1. Integer.toString(Int형) (정수 ➡️ 문자열) 2. String.valueOf(int형) (정수 ➡️ 문자열) 3. Integer.parseInt(string형) (문자열 ➡️정수) [Code] // 반복문 사용 (코드 너무 길고 더러워!) ..
[Java Algorithm] 프로그래머스 Lv.0 _ 문자열 곱하기 👿 문제 👿 문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return하는 solution 함수를 작성해주세요. [Algorithm] repeat() 메서드 사용 ! 일반적으로는 반복문을 사용할 수 있음 [Code] class Solution { public String solution(String my_string, int k) { return my_string.repeat(k); } } 이전에 문자열 반복해서 출력하기 때 배워둔 메서드 적용하기 성공 ㅋ 내 코드보다 짧고 깨끗한 코드가 없는 걸 보니 뿌듯 ; ㅋ
[Java Algorithm] 프로그래머스 Lv.0 _ 문자 리스트를 문자열로 변환하기 👿 문제 👿 문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return하는 solution 함수를 작성해주세요. [Algorithm] 반복문 사용 ➡️ 배열에 있는 각 문자열을 answer 변수에 할당 [Code] class Solution { public String solution(String[] arr) { String answer = ""; for (String s : arr) { answer += s; } return answer; } } ✔️ 다른 사람 풀이 // join 메서드 활용 class Solution { public String solution(String[] arr) { return String.join("", arr); } } 확장 f..