
int 타입 변수 n을 입력받아 나누었을 때 나머지가 1이 되도록 하는 자연수 x 중 가장 작은 x를 반환하는 문제이다. 코드를 보며 설명하도록 하겠다. 변수 n에 저장된 값은 3에서 1,000,000까지의 자연수 중 하나이다. 이 많은 수들 중 나머지가 1이 되도록 하는 x의 값은 1개일 수도 있지만 n에 저장된 값이 크면 클수록 그 x는 2개 이상일 것이다. 그들 중 가장 작은 x값을 구하기 위해서는 for 반복문을 이용하여 그 값을 구해야 한다. 우선 반복문의 범위는 1부터 n보다 작을 때까지로 하였다. 범위의 시작은 2부터 하여도 굳이 상관은 없으나(어차피 1은 n의 값이 무엇이던 무조건 나누어 떨어지게 하기 때문) 그냥 1로 하였고 n보다 작은 범위로 한 이유는 나머지가 1인 수를 보는 것인데 ..

int 타입 배열 arr에 저장되어 있는 요소들을 int 타입 변수 divisor에 저장된 값으로 나누었을 때 나누어 떨어지는 값들을 오름차순으로 정렬하여 반환하고, 만약 어떤 요소도 divisor 값으로 나누어 떨어지지 않는다면 -1만을 요소로 가지고 있는 배열을 반환하는 문제이다. 코드를 보며 설명하도록 하겠다. 우선적으로, 배열의 요소들을 오름차순으로 정렬해주는 sort() 메서드를 사용하기 위해서는'import java.util.Arrays;' 코드를 작성하여 자바 API를 import 시켜야 한다. divisor가 1이라면 모든 값을 다 반환해야 하기 때문에 그대로 배열 arr을 sort 하여 반환을 한다. 11 ~ 13번째 줄의 코드들은 배열 arr의 요소들이 divisor로 나누어 떨어지는 ..

String 타입 변수 s에 저장된 문자열을 내림차순으로 정렬하여 반환하는 문제이다. 코드를 보며 설명하도록 하겠다. 내림차순으로 정렬하기 위해 String 타입 변수 s를 split 하여 String 타입 배열 str에 저장하였다. 후에 sort함수를 사용해 올림차순으로 정렬하여 for 반복문을 사용해 올림차순으로 정렬되어 있는 배열을 맨 뒤의 인덱스부터 차례로 answer에 누적 합산하여 최종 answer를 반환하는 것으로 solution을 낼 수 있다.

String 타입 배열 seoul에 저장돼 있는 문자열들 중 "Kim"의 위치 인덱스 번호(num)를 찾아 "김서방은 num에 있다"라는 문자열을 반환하는 문제이다. 코드를 보며 설명하도록 하겠다. 문제 자체에 어려운 것은 없어 큰 설명은 필요하지 않을 것 같지만 다른 이야기를 하나 하고자 한다. 그래도 우선 코드 설명은 하고 이야기를 이어가겠다. for 반복문을 이용하여 배열 seoul에 저장된 문자열들 중 "Kim"이 저장되어 있는 인덱스의 번호를 num에 저장하여 7번의 코드를 반환하는 것으로 solution은 끝이 난다. 여기서 필자가 이야기하고자 하는 것은 5번째 줄의 코드이다. 보통 임의의 두 타입을 서로 비교할 때 비교 연산자인 '=='를 사용할 것이다. 하지만 자바에서는 String 타입으..

String 타입 변수 s를 입력받아 s에 저장된 문자열의 길이가 짝수라면 가운데 두 글자를 반환하고 홀수라면 가운데 글자를 반환하는 함수를 작성하는 문제이다. 코드를 보며 설명하도록 하겠다. String 메서드 중 하나인 substring() 메서드를 사용하였다. 이 메서드는 String 타입 변수에 저장된 문자열을 원하는 범위를 정하여 리턴할 수 있는 메서드이다. if 조건문을 사용하여 길이가 홀수이면 's.substring(s.length() / 2, s.length() / 2 + 1)'를 반환하고 짝수일 때는 6번째 줄의 코드를 반환한다. substring() 메서드의 범위를 정할 때는 예시로 'substring(시작점, 끝점);'의 방식으로 하는데, 실제 범위는 시작점부터 끝점 - 1까지의 범위..

String 타입 변수 s와 int 타입 변수 n을 입력받아 s에 저장된 알파벳을 각 n만큼 밀어 그 결괏값을 반환하는 함수를 작성하는 문제이다. 코드를 보며 설명하도록 하겠다. 내가 작성한 solution이다. 문자를 밀어내야 하는 문제이기 때문에 char 타입으로 바꾸는 것에 중점을 두었고, 아스키코드를 이용하려고 했다. 6 ~ 7번째 줄의 코드는 공백을 그대로 놔두기 위해 equals() 메서드로 ch [i]의 값이 공백이면 다음 반복으로 넘어가기 위한 'continue' 키워드를 사용했고, 공백이 참이 아니라면(if문이 거짓이라면) else문을 통과하여 알파벳을 현 위치에서 n만큼 밀어주게 하였다. 마지막으로 n만큼 밀어낸 알파벳들을 for문을 통해 String 타입 변수 answer에 누적 합산..