1. 문자열의 프린트 하기 앞서 문자열의 길이값을 구하는 것과 유사하다. 1.문자열의 0번째 인덱스 값을 불러와 print 함수를 이용해 출력한다.2.재귀함수 호출을 통해 다음 인덱스 값을 substring 함수를 이용하여 출력했던 인덱스 값을 제외한 다음 문자열을 호출하는 과정을 반복한다. ※ 소스코드 public class Recursion2 { public static void main(String[] args) { // TODO Auto-generated method stub printChars("abc"); } public static void printChars(String str){ if(str.length() == 0){ return; }else { System.out.print(str.c..
전체 글
for문을 사용하지 않고 재귀함수를 이용한 문자열의 길이 계산 아래 이미지와 같이 전체 문자열의 길이는 첫째 글자를 제외한 전체 길이에 +1을 한 것과 같다.이를 통해 재귀함수를 호출 하여 길이값을 구하는 함수에 1을 더해주면 전체 문자열의 길이를 구할 수 있다 ※ 풀이 public class Recursion2 { public static void main(String[] args) { // TODO Auto-generated method stub int len = length("Abc"); System.out.println(len); } public static int length(String str){ if(str.equals("")){ return 0; }else{ return 1+length(s..
문제 출처:https://www.hackerrank.com ※ 문제 어떤 자연수 N이 있을 때, N의 팩토리얼은 아래와 같다 N!= N x (N-1) x (N-2) x (N-3) x --- x 3 x 2 x 1 예를 들어 N이 25일 때 팩토리얼 값은 15511210043330985984000000 이다 참고로 N>20 인 경우 BigInteger를 사용해야만 가능하다 입력 받는 숫자의 팩토리얼을 구하라. ※ 풀이1 재귀함수를 통해 구현한다. ※ 소스코딩1 public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); System.out.print..
문제 출처 : 코딩도장(구글입사문제) ※ 문제 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다. (※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함) 위의 문제의 경우 여러가지의 풀이가 많은거 같다. 개인적으로 구글이 원하는 답이 무엇이었는지 궁금하다. ※ 풀이1 1~10,000 까지의 각각의 숫자의 자릿수를 구하고 그 숫자의 자릿수의 값이 8인 값을 조회하여 카운팅 갯수를 더해준다. ※ 소스코드1 public class AlgoTest { public static void main(String[] args) { int sumCnt = 0; int nLength = 0; String st..
문제 출처 : 넥슨입사문제 ※ 문제 어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다. 어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다. 그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 셀프 넘버(self-number)라 이름 붙였다. 예를 들어 1,3,5,7,9,20,31 은 셀프 넘버 들이다. 1 이상이고 5000 보다 작은 모든 셀프 넘버들의 합을 구하라. ※ 풀이 위의 문제를 풀기..
문제 출처 : https://programmers.co.kr ※ 문제 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하려고 합니다. 점 3개의 좌표가 들어있는 배열 v가 매개변수로 주어질 때, 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 return 하도록 solution 함수를 완성해주세요. 단, 직사각형의 각 변은 x축, y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다. 제한사항v는 세 점의 좌표가 들어있는 2차원 배열입니다.v의 각 원소는 점의 좌표를 나타내며, 좌표는 [x축 좌표, y축 좌표] 순으로 주어집니다.좌표값은 1 이상 10억 이하의 자연수입니다.직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 [x축 ..