프로그래밍(Programming)/알고리즘
💡 프로그래머스 : 신규 아이디 추천
💡 신규 아이디 추천 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다.(내용) 문제 링크 ✍ 문제 풀이 1. 요약 정규표현식(Regu..
프로그래머스 : 스킬트리
💡 프로그래머스 : 스킬트리 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를..
프로그래머스 : 완주하지 못한 선수
💡 완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 문제 링크 ✍ 문제 풀이 1. 요약 배열을 sort 처리해 **같은 index, 다른 이름**으로 이름 수가 다른 경우를 찾아낸다. 2. 방법 : Arrays.sort(array); 를 통해 전부 정렬한다. int는 for문이 아니라 밖에서 선언 해야한다. + 안에서 선언할 경우, 더 짧은 completion까지밖에 i가 올라갈 수 없다. ..
다음에 올 숫자
💡 다음에 올 숫자 문제 설명 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. 문제 링크 ✍ 문제 풀이 1. 요약 배열의 0,1,2번째 값을 통해 등차수열/등비수열임을 if 비교 후 결과 계산 2. 방법 : index\[2\] - index\[1\] = index\[1\] - index\[0\] 식으로 등차수열인지 계산 등차수열일 경우, 마지막 index + 등차(index[2] - index[1]) 로 결과 계산 등차가 아닐 경우 등비수열이므로, 마지막 index * 등차(index[2] - index[1]) 로 결과 계산 3. 소스 코드 class Solution { public int solutio..
프로그래머스 : 옹알이(1)
문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 원소에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 문자열은 알파벳 소문자로만 이루어져 있습니다. 풀이 코드 class Solution { public int solution(String[] babbl..
[프로그래머스] 평행
전체 코드 import java.util.*; class Solution { public int solution(int[][] dots) { int answer = 0; float[] line = new float[6]; //기울기 세는 배열 //index로 돌리면서 바로 채움 line에 int index = 0; for(int i = 0; i < 3; i++) { for(int j = i + 1; j < 4; j++) { float result = (float)(dots[i][1] - dots[j][1]) / (float)(dots[i][0] - dots[j][0]); line[index] = result; index++; } } //평행 체크 for(int k = 0; k < line.length-1..
백준 1157
import java.util.*; import java.io.*; //알파벳 대소문자로 된 단어가 주어지면, //이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. //단, 대문자와 소문자를 구분하지 않는다. public class B1157 { public static void main(String[] args) throws IOException { // 입력 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String array = br.readLine().toUpperCase(); // 횟수 체크용 배열 int[] letterCheck = new int["abcdefghijklmnopq..