☞ 문제

 

 

 

 

☞ 코드

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package algo01;
 
import java.util.Scanner;
 
public class CaesarCode {
//    어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 
//    예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 
//    문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
    
    public static String solution(String s, int n) {
        
        String answer = "";
        char[] charAs = s.toCharArray();    
        char ch = 0;
        int a = 0;                //아스키코드 값과 입력 받은 값을 더한 변수
      
        for(int i = 0; i < charAs.length; i++) {
            a = (int)charAs[i];
    
            if(a > 64 && a < 91) {
                a += n;
                if(a > 90) {
                    a -= 26;            //ex) z, 2를 입력했을 때, 92가 되지만 66이 나와야 하기 때문에 -26
                }
            } else if(a > 96 && a < 123) {
                a = a + n;
                if(a > 122) {
                    a = a - 26;
                }
            }
            
            ch = (char)a;
            charAs[i] = ch;
    
        }
        
        answer = String.valueOf(charAs);
          
        return answer;
    }
    
    
    public static void main(String[] args) {
    
        String s;
        int n;
        
        Scanner sc = new Scanner(System.in);
        System.out.println("문자열을 입력해주세요.");
        s = sc.nextLine();
        Scanner sc2 = new Scanner(System.in);
        System.out.println("숫자를 입력해주세요.");
        n = sc.nextInt();
         
        System.out.println(solution(s,n));
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

 

 

☞ 실행결과

 

 

 

 

 

음 조건문만 잘 주면 쉬운 문제였당^^.....

다음 문제부터는 for문을 활용할 때 향상된 for문을 써봐야겠다~!

 

아 그리고 이제 정확성은 귀찮아서 스샷 안 찍으련다....ㅎ....

 

 

 

'Algorithm' 카테고리의 다른 글

예산  (1) 2019.05.03
콜라츠 추측  (0) 2019.04.28
나누어 떨어지는 숫자 배열  (2) 2019.04.22
두 정수 사이의 합  (4) 2019.04.18
가운데 글자 가져오기  (1) 2019.04.15

☞ 문제

 

 

 

 

☞ 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package algo01;
 
 
public class array {
    //array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
    //divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
    
    public static int[] solution(int[] arr, int divisor) {    
        
        int count = 0;
        int c = 0;
        int[] answer = {};
        
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] % divisor == 0) {
                count++;
            } 
        }
    
        answer = new int[count];
 
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] % divisor == 0) {
                answer[c++= arr[i];
            }
        }
        
        if(answer.length == 0) {
            answer = new int[] {-1};
        }
        
        Arrays.sort(answer);
        return answer;
      }
    
    
    
    public static void main(String[] args) {
        
        int[] arr = {23613};
        System.out.println(Arrays.toString(solution(arr, 3)));
    }
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

 

 

☞ 실행결과

 

 

 

☞ 정확성

 

 

 

너무 졸려서 영혼없이 풀었다........ 미리미리 풀어둘 걸........

앞으로 일요일 오후까지 글 안 올리면 노사람........

 

알고리즘 자체는 어렵지 않은데 배열에 또 담으라고 하는 게 짱나넵 ㅎ_ㅎ

 

어쨌든 끄읏~~~

'Algorithm' 카테고리의 다른 글

콜라츠 추측  (0) 2019.04.28
시저 암호  (1) 2019.04.25
두 정수 사이의 합  (4) 2019.04.18
가운데 글자 가져오기  (1) 2019.04.15
완주하지 못한 선수  (1) 2019.04.15

☞ 문제

 

 

 

☞ 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package algo01;
 
public class intHap {
    
    public static long solution(int a, int b) {
        
        long answer = 0;
        int i;
        
        if(a < b) {    
            for(i = a; i <= b ; i++) {
                answer += i;
            }        
            
        } else if(a > b) {
            for(i = b; i <= a; i++) {
                answer += i;
            }
        } else {
            answer = a;
        }
 
        System.out.println("숫자들을 합한 값은 : " + answer);
        return answer;
 
    }
    
    
    
    public static void main(String[] args) {
        
//        두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 
//        예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
        
//        • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
//        • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
//        • a와 b의 대소관계는 정해져있지 않습니다.
 
        solution(15);
        
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

 

 

☞ 실행결과

 

 

 

음... 쉬운 문제여서 금방 풀었다..... 문제를 잘못 읽어서 다시 풀긴 했지만.......ㅎ..............

연속되는 숫자만 해당되는 줄....ㅎㅎㅎㅎㅎ

그럴 수도 있지 뭐~~~~~~

'Algorithm' 카테고리의 다른 글

콜라츠 추측  (0) 2019.04.28
시저 암호  (1) 2019.04.25
나누어 떨어지는 숫자 배열  (2) 2019.04.22
가운데 글자 가져오기  (1) 2019.04.15
완주하지 못한 선수  (1) 2019.04.15

☞ 문제

프로그래머스 문제

 

 

☞ 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package algo01;
 
import java.util.Scanner;
 
public class StringExercise {
//        단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
//        예)
//        abcde    c
//        qwer    we
    
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        System.out.println("원하는 글자를 입력해주세요.");
        
        String[] strArray = new String[100];
        String str = sc.nextLine();
        String res;
 
        strArray = str.split("");                    //한 글자씩 저장하기
        
        if(strArray.length % 2 == 0) {                //배열의 길이가 짝수면 길이를 2로 나누고 그 앞에 글자와 2로 나눈 값의 글자를 가져온다.
            res = strArray[strArray.length/2 - 1+ strArray[strArray.length/2];
            System.out.println(res);
        } else {                                    //배열의 길이가 홀수면 길이를 2로 나눈 값만 가져온다.
            res = strArray[strArray.length/2];
            System.out.println(res);
        }
            
    }
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

 

 

☞ 실행결과

 

 

 

프로그래머스에서 하라는 대로 코드 짜서 컴파일 시켰는데 프로그래머스가 멍청하게 이상한 오류를 계속 내서 프로그래머스에서 테스트를 못했당...

42번째 줄에서 오류라는데 내 코드는 33줄이 끝인데 ㅎㅎ......

 

그래서 그냥 내가 문제 보지도 않고 짰던 코드로 올리기로 했당~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

'Algorithm' 카테고리의 다른 글

콜라츠 추측  (0) 2019.04.28
시저 암호  (1) 2019.04.25
나누어 떨어지는 숫자 배열  (2) 2019.04.22
두 정수 사이의 합  (4) 2019.04.18
완주하지 못한 선수  (1) 2019.04.15

☞ 문제

프로그래머스 문제

 

 

☞ 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package algo01;
 
 
public class marathon {
    
    public static String solution(String[] participant, String[] completion) {
        
        //마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 
        //완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 
        //완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요
        
        int i;
        
        Arrays.sort(completion);
        
        for(i = 0; i < completion.length; i++) {            //완주하지 못한 선수를 return 해야 하므로, 완주한 선수들의 길이까지
            if(!completion[i].equals(participant[i])) {        //만약, 완주한 선수와 참여한 선수가 같지 않다면,
                return participant[i];                        //참여한 선수 중에 같지 않은 선수를 리턴
            }
        }
        return participant[i];
    }
    
    public static void main(String[] args) {
        
        String[] participant = {"marina""josipa""nikola""vinko""filipa"};            //참여한 선수들
        String[] completion = {"josipa""filipa""marina""nikola"};                    //완주한 선수들
        //Arrays.sort(participant);
        //Arrays.sort(completion);
        
        System.out.println("완주하지 못한 선수는 " + solution(participant, completion));
    }
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

main에서 Arrays클래스에 있는 sort메서드를 썼을 때, 이클립스에서는 잘 됐지만 프로그래머스 자체에서 실행했을 때는 계속 "marina"가 리턴됐다.

그래서 sort메서드를 solution함수 내에 시작할 때부터 정렬해주라고 위치를 옮겼더니 잘 됐다. 

 

 

 

 

 실행결과

 

 

 

☞ 효율성 및 정확성

만점이당 히히 >_<

'Algorithm' 카테고리의 다른 글

콜라츠 추측  (0) 2019.04.28
시저 암호  (1) 2019.04.25
나누어 떨어지는 숫자 배열  (2) 2019.04.22
두 정수 사이의 합  (4) 2019.04.18
가운데 글자 가져오기  (1) 2019.04.15

+ Recent posts