1. 문제

문자열 섞기 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/181942

 

2. 문제 해결

두 개의 문자열 길이가 동일하므로 substring을 사용하여 하나씩 for문을 돌림

 

 

3.문제 풀이

class Solution {
    public String solution(String str1, String str2) {
        String answer = "";
        
        for(int i=0; i<str1.length(); i++){
            answer += str1.substring(i,i+1);
            answer += str2.substring(i,i+1);
        }
        
        return answer;
    }
}
  • 문자열 겹쳐쓰기
문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항
  • my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s  my_string의 길이 - overwrite_string의 길이

입출력 예my_stringoverwrite_stringsresult
"He11oWor1d" "lloWorl" 2 "HelloWorld"
"Program29b8UYP" "merS123" 7 "ProgrammerS123"

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.

 

[문제풀이]

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        
        int len1 = my_string.length();
        int len2 = overwrite_string.length();
        
        String sub1 = my_string.substring(0, s);
        String sub2 = my_string.substring((s+len2), len1);
        
        answer += sub1 + overwrite_string + sub2;
        
        return answer;
    }
}

 

[다른 사람 코드풀이]

굳이 length() 를 사용하지 않고 간결하게  작성할 수있었다

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String before = my_string.substring(0, s);
        String after = my_string.substring(s + overwrite_string.length());
        return before + overwrite_string + after;
    }
}

[문제 설명]

자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.


제한사항
  • 1 ≤ n ≤ 1,000

입출력 예

입력 #1

100

출력 #1

100 is even

입력 #2

1

출력 #2

1 is odd

 

 

[문제풀이]

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        if(n%2 == 0){
            System.out.println(n + " is even");
        }else{
            System.out.println(n + " is odd");
        }
        
        
        
    }
}

 

 

[다른 문제 해결 방안]

문제를 보고 단순하게 먼저 떠오른 생각으로 2로  나눈다음 나머지값으로 해결하며 되겠다고 생각하였으나

조금 더 생각하여 삼항 연산자를 사용한다면 코드가 4줄에서 한줄로 간단하게 풀 수 있었다

System.out.print(n + " is "+(n % 2 == 0 ? "even" : "odd"));

덧셈식 출력하기

 


[문제 설명]
두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.
a + b = c


[제한사항]
1 ≤ a, b ≤ 100


[입출력 예]
입력 #1
4 5
출력 #1
4 + 5 = 9

 

[문제 해결]

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.printf("%d + %d = %d",a,b,a+b);	//방법 1
        System.out.printf(a + " + " + b + " + " + (a+b));	//방법2
    }
}

 

// 방법 3

        int sum = a+b;

        System.out.println(a + " + " + b + " = " + sum);

+ Recent posts