정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요. 앞서 풀었던 '잘라서 배열로 저장하기' 문제와 유사해보였다. 이 문제는 정수 배열이 주어지고, 매개변수가 2개 주어질때 첫번째 매개변수부터 두번째 매개변수 인덱스 까지 자른 정수배열을 다시 리턴해야한다. 정수를 다루다보니 문자열을 처리하는 문제보다는 다소 어려울 것 같아서 정수형 리스트를 선언하여 정수형 배열을 넣어주었다. 넣어주는 과정에서 조건 인덱스를 한번에 처리하도록 하였다. int k = 0; for(int i = 0; i < numbers.length; i++){ if(i = num..
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. 필요한 기능을 먼저 생각해보았다. 1) 문자열의 길이를 알아내는 length() 메서드 2) 문자열을 잘라내는 split() 메서드 3) 조각낸 문자열을 담아내는 문자열 리스트, 4) 나머지를 분석할 변수 Try 1) 인덱스 범위 오류 public static String[] solution(String my_str, int n) { String[] split_arr = my_str.split(""); int length = split_arr.length; int answer_len = length / n + 1; String[] answer = new ..
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. 연속된 수를 더하면 되지만, '연속된 수의 개수'와 '연속된 수의 총합'만 주어지기때문에 조금 어렵게 느껴졌다. 총합과 개수만 보고 임의의 수가 어떻게 이뤄질지 유추하는 문제이다. Try 1) java.lang.ArrayIndexOutOfBoundsException: 3 오류 발생 public static int[] solution(int num, int total) { int[] answer = new int[num]; // total과 비교하기 위한 합계..
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 배열이 주어지고, 그 배열 안 요소가 '7'이라는 문자를 몇개 포함하는지 풀어내는 것이므로, 정수형 배열을 문자열로 변환해준 후 그 문자열에서 equals() 메서드를 활용하여 풀고자 하였다. 정수형 배열에서도 풀어낼 수 있는 방법이 % 나누기 연산자를 이용해 나머지를 분석하면 되지만, 로직을 간단히 하기 위해 정수형배열 -> 문자열배열로 변환 후 해결할 수 있었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //..
주사위를 BufferedReader로 입력받고 공백을 기준으로 정수형 변수들을 만들어 준 후 연산 하고자 하였다. 주사위 눈이 모두 같은 경우, 한개만 같은 경우, 모두 다른 경우를 and 와 or 연산을 통해 구현하면 된다. if(a == b && b == c && a == c) { result = 10000 + a * 1000; System.out.println(result); } a와 b가 같고 b와 c가 같고 a와 c가 같은 경우를 and연산으로 처리해주었고, result 변수에 상금을 담았다. else if (a == b || b == c || a == c) { if(a == b) { result = 1000 + a * 100; } else if(b == c) { result = 1000 + b..
백준 2884번 : 알람 시계와 비슷하게 '시간'을 다루는 문제이다. 알람 시계에서는 45분을 일찍 일어나야해서 -45를 해주는 것이 있었다면 이번 오븐 시계에서는 조리 후의 시간을 알려주는 시계를 만드는 것이므로 + m (분) 을 해주어야한다. int total = m + ing; if(m = 24) { h = h - 24; } else if(m >= 60) { m = 60 - m; } m = 60 - (total); m = Math.abs(m); if(m == 60) { m = 0; } System.out.println(h + " " + m); } else { if(h >= 24) { h = h -..
시계, 시간과 관련된 문제를 풀이할때는 항상 느끼는 것이 100 단위 기준으로 다음 단위로 넘어가는 것이 아닌 60을 기준으로 사용한다는 것이다. 이를 변환해주는 과정이 필요했다. 처음에는 예시 예제 입력, 출력이 다양한 것을 보고 저 예제들에 다 통과될만큼 조건문을 만들면 되지 않을까 싶었다. // 1. 입력받은 '분'이 0분일 때 if(m 0) { m = m - 45; h--; m = 60 - Math.abs(m); System.out.println(h + " " + m); } 처음에는 코드가 길더라도 이러한 방식으로 적어주었다. Math.abs를 통해 절대값을 도출할 수 있었고, 만약 m = m - 45; // m(분) 연산에서 음수가 나오게 되면 Math.abs를 통해 연산이 가능한 양수로 바꿔주..
윤년 예제는 프로그래밍을 처음 접할때나, 과제를 할 때 많이 보는 예제이다. Scanner 클래스를 이용해 년도를 입력받고 1 또는 0을 출력하여 윤년을 판별할 수 있다. 이번 풀이에서는 Scanner 클래스 대신 BufferedReader를 사용하고자 한다. % (나머지) 연산과 / (나눗셈) 연산, !=, || 논리연산 등을 적절히 써줘야하는 문제이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new B..
문자열 출력을 이용해 귀여운 강아지를 출력해야한다. 간단한 문제인줄 알았으나 예상치 못한 부분이 있었다. 일반적으로 문자열 출력이라고한다면 System.out.println(" 안녕 "); 처럼 " " (큰따옴표)안에 문자열을 적어서 출력을 한다. 강아지의 귀 부분 문자열을 보면 \ (백슬래시)가 출력되는 것을 확인할 수 있는데, 이를 문자열로 인식하는지의 여부이다. 먼저, \ (백슬래시)가 하나만 쓰인다면 문자열로 인식하지 않는다. 자바에서 출력문 안에서 \ (백슬래시)가 등장하는 순간 그 바로 다음 문자를 인식한 후 특수문자처럼 취급한다. 한마디로 다른 기능을 하는 특수문자가 만들어지는 것이다. 이를 '이스케이프 시퀀스(Escape Sequence)'라고 하며, 특정하게 지정되어있는 경우가 아니라면 ..