이지은님의 블로그
[JAVA] 코드카타 - (36)~(40) 본문
문제 (36) : 문자열 다루기 기본
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12918
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
class Solution {
public boolean solution(String s) {
if (s.length() != 4 && s.length() != 6) return false;
for (char c : s.toCharArray()){
if (!Character.isDigit(c)) return false;
}
return true;
}
}
문제 (37) : 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12950
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr1[0].length];
for (int i = 0; i<arr1.length; i++) {
for (int j = 0; j<arr1[i].length; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}
문제 (38) : 직사각형 별찍기
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12969
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
for (int i = 0; i<b; i++) {
for (int j = 0; j<a; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
문제 (39) : 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
class Solution {
public int[] solution(int n, int m) {
int[] answer = { 1, Math.max(n,m) };
for (int i = 1; i<n*m; i++){
if ((n % i == 0 && m % i == 0)) answer[0] = i;
int j = n * m - i + 1 ;
if ((j % n == 0 && j % m == 0)) answer[1] = j;
}
return answer;
}
}
문제 (40) : 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/68935
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
class Solution {
public int solution(int n) {
StringBuilder sb = new StringBuilder(Integer.toString(n,3));
sb.reverse();
return Integer.parseInt(sb.toString(),3);
}
}
'알고리즘 공부 > [JAVA] 코드카타' 카테고리의 다른 글
[JAVA] 코드카타 - (46)~(50) (1) | 2025.01.22 |
---|---|
[JAVA] 코드카타 - (41)~(45) (0) | 2025.01.17 |
[JAVA] 코드카타 - (31)~(35) (0) | 2025.01.10 |
[JAVA] 코드카타 - (26)~(30) (0) | 2025.01.10 |
[JAVA] 코드카타 - (21)~(25) (0) | 2025.01.10 |