Develop/Algorithm

    백준 실버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..

    백준 실버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와 같다. 할머니가 외운 단어가..

    프로그래머스 Lv.1 - 12930 이상한 문자 만들기

    프로그래머스 Lv.1 - 12930 이상한 문자 만들기 문제 풀이 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 문제의 자세한 내용은 해당 링크를 통해 확인 : 문제 링크 풀이 코드 class Solution { public String solution(String s) { StringBuilder ret = new StringBuilder(); // 반환할 문자열을 담을 StringBuilder 타입 변수 생성 for(String str : s.split(" ", -1)) { // 입력받은 문자열 s를 공백..

    Java BufferedReader, BufferedWriter 사용법

    Java BufferedReader, BufferedWriter 사용법

    Java를 배우기 시작하여 입출력을 구현할 때 사용하는 메서드는 일반적으로 출력에는 System.out.println() 메서드를 사용하고 입력에는 Scanner 클래스를 사용하여 구현하게 될 텐데, 알고리즘 문제를 풀다 보면 속도로 인한 문제가 발생하게 됩니다. 이는 System.out.println() 메서드와 Scanner 클래스의 메서드 동작에 걸리는 시간으로 인해서 발생하는 경우도 있기 때문에 이를 해결하고자 입출력 속도가 빠른 BufferedReader와 BufferedWriter 클래스를 찾아서 사용하게 됩니다. 이 때 해당 클래스들의 사용법을 자주 사용을 하다 보면 외워지겠지만.. 아직은 사용법을 찾아서 사용하다보니 사용법을 정리한 포스팅을 작성하게 되었습니다. Buffered? 클래스의 ..

    백준 코드 작성시 참고 항목

    해당 포스팅의 이유는 계속해서 자주 문제를 푼다면 까먹을리 없지만.. 까먹을 정도의 시간이 흐른 후 다시 들어가서 풀려고 하다보니 계속 찾아보기가 귀찮아서 그냥 정리를 해두려고 작성한 내용입니다. 따라서 제 개인적인 견해가 많이 첨가되어 있음을 알려드립니다. 백준 사이트에서 알고리즘 문제를 풀 때, Java의 경우 아래의 내용들을 참고해서 작성을 해야한다. 클래스 작성시 클래스명은 Main으로 작성 문제 해결 메서드는 public void main 메서드를 사용 입력을 받아야하는 경우, 입력을 받는 코드 작성 필요 문제 해결 후 최종값을 반환이 아닌 출력으로 표현 (public void main을 사용하기 때문에 당연한 내용) 입출력의 경우 속도를 감안하여 BufferedReader, BufferdWri..