coffee-yongsucheol / Java-Study-time

0 stars 0 forks source link

[2주차] 코딩 테스트 연습 #3

Open amazon7737 opened 5 months ago

amazon7737 commented 5 months ago

0레벨 자바 코딩테스트 입문 , 정답률 높은 순

최댓값 만들기(2) 제곱수 판별하기 순서쌍의 개수 배열 두배 만들기 문자열 뒤집기

1레벨 문자열 내 p와 y의 개수 문자열을 정수로 바꾸기 신고 결과 받기

amazon7737 commented 5 months ago

최댓값 만들기(2)

class Solution {
    public int solution(int[] numbers) {
        int[] result = {0};
        if(numbers.length == 2){
            return numbers[0]*numbers[1];
        }
        for( int i=0; i < numbers.length;i++){
            for(int j=i+1; j<numbers.length; j++){
                if(result[0] < (numbers[i]*numbers[j])){
                    result[0] = numbers[i]*numbers[j];
                }
            }
        }

        return result[0];
    }
}
junw00 commented 5 months ago
import java.util.*;
class Solution {
    public int solution(int[] numbers) {
        int maxNum = Integer.MIN_VALUE;
        for(int i = 0; i < numbers.length; i++) {
            for(int j = i + 1; j < numbers.length; j++) {
                maxNum = Math.max(maxNum, numbers[i] * numbers[j]);

            }
        }

        return maxNum;
    }
}
junw00 commented 5 months ago
class Solution {
    public int solution(int n) {
        int answer = 0;

        answer = (int) Math.sqrt(n) * (int) Math.sqrt(n);
        if(answer == n) {
            return 1;
        }
        return 2;
    }
}
junw00 commented 5 months ago
class Solution {
    public int solution(int n) {
        int total = 0;
        int i = 1;
        while(i <= n){
            if((n/i) * i==n) {
                total++;
            }
            i++;
        }
        return total;
    }
}
junw00 commented 5 months ago
class Solution {
    public int solution(int n) {
        int mid = (int) n / 2;
        for(int i = 0; i < mid; i++) {
            if(i * i == n) {
                return 1;
            }
        }
        return 2;
    }
}
amazon7737 commented 5 months ago

제곱수 판별하기

class Solution {
    public int solution(int n) {
        int result = (int) Math.sqrt(n) * (int) Math.sqrt(n);

        if(n == result){
            return 1;
        }

        return 2;
    }
}
junw00 commented 5 months ago

배열 두 배 만들기

class Solution {
    public int[] solution(int[] numbers) {
        int[] multiplyArr = new int[numbers.length];
        for(int i = 0; i< numbers.length; i++) {
            multiplyArr[i] = numbers[i] * 2;
        }
        return multiplyArr;
    }
}
wjdghks3431 commented 5 months ago
//1번
class Solution {
    public int solution(int[] numbers) {
        int answer = -100000000;
        for(int i =0; i<numbers.length; i++){
            for(int j = i+1; j<numbers.length; j++){
                if(numbers[i] * numbers[j] > answer){
                    answer = Math.max(answer, numbers[i] * numbers[j]);
                    }
                }
            }
        return answer;
    }
}
//2번
class Solution {
    public int solution(int n) {
        double a;
        int answer = 0;
        a = Math.sqrt(n);
        if(a%1==0){
            answer =1;
        }else{
            answer =2;
        }
        return answer;
    }
}
amazon7737 commented 5 months ago

순서쌍의 개수

class Solution {
    public int solution(int n) {
        int cnt=0;
        for(int i=1; i<=n; i++){
            if(n%i ==0){
                cnt++;
            }
        }
        return cnt;
    }
}
amazon7737 commented 5 months ago

배열 두배 만들기

class Solution {
    public int[] solution(int[] numbers) {
        int[] array = new int[numbers.length];

        for(int i=0; i<numbers.length;i++){
            array[i] = numbers[i]*2;
        }

        return array;
    }
}
junw00 commented 5 months ago

문자열 뒤집기

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for (int i = 0; i < my_string.length(); i++) {
            answer += String.valueOf(my_string.charAt(my_string.length() - i - 1));
        }
        return answer;
    }
}
junw00 commented 5 months ago

문자열 내 p와 y의 개수

class Solution {
    boolean solution(String s) {
        int[] cnt = {0, 0};
        for(char c : s.toLowerCase().toCharArray()) {
            if(String.valueOf(c).equals("p")) {
                cnt[0]++;
            }else if(String.valueOf(c).equals("y")) {
                cnt[1]++;
            }
        }
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        return cnt[0] == cnt[1] ? true : false;
    }
}
junw00 commented 5 months ago

문자열 정수로 바꾸기

class Solution {
    public int solution(String s) {

        return Integer.parseInt(s);
    }
}
amazon7737 commented 5 months ago

문자열 뒤집기


class Solution {
    public String solution(String my_string) {

        String[] array = new String[my_string.length()];
        String result = "";
        String[] resultArray = {""};

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

            array[i] = my_string.substring(i, i+1);

        }

        for(int i=array.length-1; i>=0;i--){

            result += array[i];

            System.out.println(result);
        }

        return result.toString();

    }
}
amazon7737 commented 5 months ago

문자열내 p와 y의 개수


class Solution {
    boolean solution(String s) {
        String translateWord = "";
        int pword = 0;
        int yword = 0;
        for(int i=0; i<s.length(); i++){
            translateWord = s.toLowerCase();
            System.out.println(translateWord);
        }

        for(int i=0; i<translateWord.length(); i++){
            if(translateWord.substring(i, i+1).equals("p")) {
                pword++;
            }else if(translateWord.substring(i, i+1).equals("y")){
                yword++;
            }
        }

         if(pword == yword){
             return true;
         }

        return false;
    }
}
amazon7737 commented 5 months ago

문자열 정수로 바꾸기


class Solution {
    public int solution(String s) {
        return Integer.valueOf(s);
    }
}
wjdghks3431 commented 5 months ago
//문자열 뒤집기
class Solution {
    public String solution(String my_string) {
        String answer = "";
        for(int i = my_string.length()-1; i>=0; i--){
            answer = answer + my_string.charAt(i);
        }
        return answer;
    }
}
//charAt() : String으로 저장된 문자열 중에서 한 글자만 선택해서 char타입으로 변환줌

//문자열 내 p와 y의 개수
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int a = 0;
        int b = 0;
        s = s.toLowerCase();
        for(int i = 0; i<s.length();i++){
            if(s.charAt(i)=='p'){
                a+=1;
            }else if(s.charAt(i)=='y'){
                b+=1;
            }
        }if(a==b){
            answer = true;
        }else{
            answer = false;
        }

        return answer;
    }
}
junw00 commented 5 months ago

신고 결과 받기

import java.util.*;
class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        Set<String> set = new HashSet<>();
        Map<String, Integer> map = new HashMap<>();
        int[] result = new int[id_list.length];

        // 신고 중복 제거
        for(String r : report) {
            set.add(r);
        }

        // 신고당한 횟수
        for(String s : set) {
            String[] sArr = s.split(" ");
            if(map.get(sArr[1]) == null) {
                map.put(sArr[1], 1);
            }else {
                map.put(sArr[1], map.get(sArr[1]) + 1);
            }
        }
        // 신고당한 유저와 k 값 비교 후 신고한 유저의 결과++
        for(String s : set) {
            String[] sArr = s.split(" ");
            if(map.get(sArr[1]) >= k) {
                for(int i = 0; i < id_list.length; i++) {
                    if(id_list[i].equals(sArr[0])) {
                        result[i]++;
                    }
                }
            }

        }
        return result;
    }

}
amazon7737 commented 5 months ago

신고 결과 받기 (오답) -> 다음주에 다시 풀어보겠습니다


import java.util.*;
class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        Set<String> set = new HashSet<String>();
        Map<String, Integer> map = new HashMap<String, Integer>();
        // result가 제출하는 녀석
        int[] result = new int[id_list.length];

        String reported = "";

        for(String r: report){
            set.add(r);
        }

        // length , length() , size()

        for(int i=0; i<id_list.length;i++){
            map.put(id_list[i], 0);
        }

        for(String s : set){
            String[] sArr = s.split(" ");
            // 예: ["muzi", "prodo"]
            System.out.println("s:"+s.split(" "));
            if(map.get(sArr[1]) == null){
                map.put(sArr[1], 1);
            }else{
                map.put(sArr[1], map.get(sArr[1]) + 1);
            }
        }

        for(String s : set){
            String[] sArr = s.split(" ");
            if(map.get(sArr[1]) >= k){
                for (int i=0; i< id_list.length; i++){
                    if(id_list[i].equals(sArr[0])){
                        result[i]++;
                    }
                }
            }
        }

        return result;
    }
}