728x90

세 변의 길이가 배열로 주어질 때 주어진 배열로 삼각형을 만들 수 있는 경우 1, 아닌 경우 2를 반환 

 

삼각형을 만들 수 있는 조건

/ *가장 긴 변의 길이가 다른 두 변의 길이의 합보다 작아야 한다.*/

 

public int solution(int[] sides) {

Arrays.sort(sides);

if(sides[2]<sides[0]+sides[1])

return 1;

return 2;

}

 

삼항연산자를 사용하면 더 좋았을텐데 익숙하지가 않다... 

public int solution(int[] sides) {

Arrays.sort(sides);

int answer = (sides[2]<sides[0]+sides[1]) ? 1: 2;

return answer;

}

'Java > Coding Test' 카테고리의 다른 글

문자열 정렬하기(1) 문제풀이  (0) 2023.09.10
점의 위치 구하기 문제풀이  (1) 2023.09.09
순서쌍의 개수 문제풀이  (0) 2023.09.09
배열의 유사도 문제풀  (0) 2023.09.09
문자열 뒤집기 문제풀이  (1) 2023.09.09
728x90

두 자연수의 곱이 n이 되는 자연수 순서쌍의 개수 구하기 

 

-i의 제곱이 n과 같거나 작을때 까지 구하고 

i가 정확히 n의 제곱근인 경우, 구한 answer의 2배에서 1을 빼고 아니면 그냥 2배를 반환하면 된다.

public int solution(int n) {

int answer = 0;

boolean isSquare = false;

for (int i = 1; i * i <= n; i++) {

if (i * i == n)

isSquare = true;

if (n % i == 0) {

answer++;

}

}

answer *= 2;

if (isSquare)

answer--;

return answer;

}

- 다른 사람의 풀이를 보다가 boolean을 선언할 필요가 없어서 조금 개선해보았다. 

나중에 2배를 곱하지 않고 처음 answer를 증가시킬때부터 2배로 증가시키고 제곱근인 경우만 1 증가시켰다.

public int solution2(int n) {

int answer = 0;

for (int i = 1; i * i <= n; i++) {

if (i * i == n) answer++;

else if (n % i == 0) {

answer+=2;

}

}

return answer;

}

'Java > Coding Test' 카테고리의 다른 글

문자열 정렬하기(1) 문제풀이  (0) 2023.09.10
점의 위치 구하기 문제풀이  (1) 2023.09.09
삼각형의 완성조건  (0) 2023.09.09
배열의 유사도 문제풀  (0) 2023.09.09
문자열 뒤집기 문제풀이  (1) 2023.09.09
728x90

문자열 s1, s2의 원소들 중 동일한 원소의 개수 구하기 

 

-s1,s2의 원소들을 각각 하나씩 비교하기 

public int solution(String[] s1, String[] s2) {

int answer = 0;

for (int i = 0; i < s2.length; i++) {

for (int j = 0; j < s1.length; j++) {

if(s1[j].equals(s2[i])) {

answer++;

}

}

}

return answer;

}

-set의 특성(중복 허용x)을 이용하여 set의 사이즈와 두 배열의 크기의 합을 비교하여 구하기 

public int solution2(String[] s1, String[] s2) {

int answer = 0;

Set<String> set = new HashSet<String>();

for (int i = 0; i < s1.length; i++) {

set.add(s1[i]);

}

for (int i = 0; i < s2.length; i++) {

set.add(s2[i]);

}

answer =s1.length+s2.length-set.size();

 

return answer;

}

'Java > Coding Test' 카테고리의 다른 글

문자열 정렬하기(1) 문제풀이  (0) 2023.09.10
점의 위치 구하기 문제풀이  (1) 2023.09.09
삼각형의 완성조건  (0) 2023.09.09
순서쌍의 개수 문제풀이  (0) 2023.09.09
문자열 뒤집기 문제풀이  (1) 2023.09.09
728x90

입력받은 문자열을 뒤집어 출력하는 문제 

 

> 입력받은 문자열을 문자 배열로 바꾸어 문자의 배열 순서를 바꿔준 후 다시 문자열로 바꾸어 반환

public String solution(String my_string) {

String answer = "";

char[] arr = my_string.toCharArray();

for (int i = 0; i < arr.length/2; i++) {

char temp = arr[i];

arr[i] = arr[arr.length-i-1];

arr[arr.length-1-i]=temp;

}

answer = String.valueOf(arr);

return answer;

}

 

다른 사람 풀이 

- StringBuilder클래스의 reverse 메소드 이용 

public String solution2(String my_string) {

return new StringBuilder(my_string).reverse().toString();

}

- 입력받은 문자열의 가장 뒤 문자부터 String answer에 더해주는 방식

public String solution3(String my_string) {

String answer = "";

for (int i = 0; i < my_string.length(); i++) {

answer+=my_string.charAt(my_string.length()-1-i);

}

return answer;

}

 

'Java > Coding Test' 카테고리의 다른 글

문자열 정렬하기(1) 문제풀이  (0) 2023.09.10
점의 위치 구하기 문제풀이  (1) 2023.09.09
삼각형의 완성조건  (0) 2023.09.09
순서쌍의 개수 문제풀이  (0) 2023.09.09
배열의 유사도 문제풀  (0) 2023.09.09

+ Recent posts