Develop

    프로그래머스 Lv.2 - 42586 기능개발

    프로그래머스 Lv.2 - 42586 기능개발 문제 풀이 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크 풀이 코드 import java.util.*; i..

    프로그래머스 Lv.1 - 77484 로또의 최고 순위와 최저 순위

    프로그래머스 Lv.1 - 77484 로또의 최고 순위와 최저 순위 문제 풀이 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구..

    프로그래머스 Lv.1 - 12910 나누어 떨어지는 숫자 배열

    프로그래머스 Lv.1 - 12910 나누어 떨어지는 숫자 배열 문제 풀이 문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크 풀이 코드 import java.util.Arrays; class Solution { public int[] solution(int[] arr, int divisor) { int[] answer = Arrays.stream(arr) .filter(i -> i % divisor == 0) .sorted() .toArray(); ..

    프로그래머스 Lv.1 - 92334 신고 결과 받기

    프로그래머스 Lv.1 - 92334 신고 결과 받기 문제 풀이 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi",..

    프로그래머스 Lv.2 - 60057 문자열 압축

    프로그래머스 Lv.2 - 60057 문자열 압축 문제 풀이 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 ..

    백준 실버V - 17478 재귀함수가 뭔가요?

    백준 실버V - 17478 재귀함수가 뭔가요? 문제 풀이 문제 설명 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대학교가 자신과 맞는가에 대한 고민을 항상 해왔다. 중앙대학교와 자신의 길이 맞지 않다고 생각한 JH 교수님은 결국 중앙대학교를 떠나기로 결정하였다. 떠나기 전까지도 제자들을 생각하셨던 JH 교수님은 재귀함수가 무엇인지 물어보는 학생들을 위한 작은 선물로 자동 응답 챗봇을 준비하기로 했다. JH 교수님이 만들 챗봇의 응답을 출력하는 프로그램을 만들어보자. 문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크 풀이 코드 import java.io.Buffe..

    백준 브론즈I - 10989 수 정렬하기 3

    백준 브론즈I - 10989 수 정렬하기 3 문제 풀이 문제 설명 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크 풀이 코드 import java.io.*; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int si..

    Collection framwork

    Collection framwork

    Collection framwork에 대해 공부한 내용을 바탕으로 작성한 글이기 때문에 잘 못 된 내용이 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다! Collection framwork 컬렉션 프레임워크란 Java에서 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합입니다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이라 볼 수 있습니다. 자주 쓰이는 컬렉션 프레임워크의 클래스 구조도를 보면 아래의 이미지와 같습니다. (아래의 이미지에 나와있는 구조도는 간략화되어 있으며, 실제로는 훨씬 더 많고 복잡합니다.) 이미지에서 볼 수 있듯이 컬렉션 프레임워크는 크게 List, Set, Map 3가지로 나눌 수..

    백준 실버V - 2751 수 정렬하기

    백준 실버V - 2751 수 정렬하기 문제 풀이 문제 설명 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크 풀이 코드 import java.io.*; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 입력을 위한 BufferedReader 인스턴스 생성 BufferedWriter bw = new BufferedWriter(new OutputStre..

    백준 브론즈II - 5622 다이얼

    백준 브론즈II - 5622 다이얼

    백준 브론즈II - 5622 다이얼 문제 풀이 문제 설명 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가..