11. 수박수박수박수박
class Solution {
public String solution(int n) {
String result = "";
for (int i = 0; i < n; i++){
result += i % 2 == 0 ? "수" : "박";
}
return result;
}
}
12. 문자열을 정수로 바꾸기
class Solution {
public int solution(String s) {
return Integer.valueOf(s);
}
}
Integer.valueOf(문자열) 을 하면 부호도 함께 숫자로 바꿔준다.
13. 내적
class Solution {
public int solution(int[] a, int[] b) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+= a[i] * b[i];
}
return sum;
}
}
14. 시저 암호
-> 아스키 코드 사용법 익숙해지기
class Solution {
public String solution(String s, int n) {
String answer = "";
for(int i=0; i<s.length(); i++) {
char alpa = s.charAt(i);
if(alpa >= 'a' && alpa <= 'z') {
if(alpa + n > 'z') answer += (char)(alpa + n-26);
else answer += (char)(alpa + n);
}
else if(alpa >= 'A' && alpa <= 'Z') {
if(alpa + n > 'Z') answer += (char)(alpa + n-26);
else answer += (char)(alpa + n);
}
else answer += (char)alpa;
}
return answer;
}
}
15. 약수의 합
class Solution {
public int solution(int n) {
int sum = 0;
for (int i = 1; i < n + 1; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum;
}
}
16. 이상한 문자 만들기
class Solution {
public String solution(String s) {
int index = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i) == ' ') {
sb.append(' ');
index = 0;
} else {
if(index % 2 != 0) {
sb.append(Character.toLowerCase(s.charAt(i)));
index ++;
} else {
sb.append(Character.toUpperCase(s.charAt(i)));
index ++;
}
}
}
return sb.toString();
}
}
*배운 것
Character.toLowerCase(Character)
Character.toUpperCase(Character)
s.charAt(i)==' '를 통해 split을 안해도 스페이스 확인 가능.
17. 자릿수 더하기
방법 1) 타입 변환
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String[] array = String.valueOf(n).split("");
for(String s : array){
answer += Integer.parseInt(s);
}
return answer;
}
}
방법 2) %, / 이용
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
18. 자연수 뒤집어 배열로 만들기
방법 1) int로 풀기
class Solution {
public int[] solution(long n) {
int[] nList = new int[(int)(Math.log10(n)+1)];
int count = 0;
while (n > 0) {
nList[count] = (int)(n % 10);
n /= 10;
count++;
}
return nList;
}
}
방법 2) String 변환
class Solution {
public int[] solution(long n) {
String s = String.valueOf(n);
StringBuilder sb = new StringBuilder(s);
sb = sb.reverse();
String[] ss = sb.toString().split("");
int[] answer = new int[ss.length];
for (int i=0; i<ss.length; i++) {
answer[i] = Integer.parseInt(ss[i]);
}
return answer;
}
}
*배운 것
- Math.log10(n)+1 을 하면 int형의 자리수를 파악할 수 있다. 예) 1234 -> 4
- StringBuilder.reverse() 는 문자열을 거꾸로 바꿔줌.
19. 정수 내림차순 배치하기
방법 1)
import java.util.*;
class Solution {
public long solution(long n) {
Integer[] nList = new Integer[(int) (Math.log10(n) + 1)];
int count = 0;
long result = 0;
while (n > 0) {
nList[count] = (int) (n % 10);
n /= 10;
count++;
}
Arrays.sort(nList, Collections.reverseOrder());
for (int i = 0; i < nList.length; i++) {
result += nList[i];
result *= 10;
}
return result/10;
}
}
방법 2) StringBuilder reverse
import java.util.*;
class Solution {
public long solution(long n) {
String[] list = String.valueOf(n).split("");
Arrays.sort(list);
StringBuilder sb = new StringBuilder();
for (String aList : list) sb.append(aList);
return Long.parseLong(sb.reverse().toString());
}
}
import java.util.Arrays;
public class ReverseInt {
public int reverseInt(int n){
String str = Integer.toString(n);
char[] c = str.toCharArray();
Arrays.sort(c);
StringBuilder sb = new StringBuilder(new String(c,0,c.length));
return Integer.parseInt(((sb.reverse()).toString()));
}
}
*배운 것
- 내림차순 정렬 => Arrays.sort(array,Collections.reverseOrder()) 이다. 단 array는 int[]가 아니라 Integer[]로 해야된다.
- StringBuilder.reverse() 는 문자열을 거꾸로 바꿔줌.
20. 정수 제곱근 판별
class Solution {
public long solution(long n) {
long target = (long) Math.sqrt(n);
if (target*target==n){
return (target+1)*(target+1);
}
return -1;
}
}
*배운 것
- 제곱근 구하기 Math.sqrt()
'Algorithm(알고리즘) > 프로그래머스 고득점 Kit' 카테고리의 다른 글
Java 프로그래머스 - [카카오 인턴] 키패드 누르기 Level1 (0) | 2021.01.04 |
---|---|
Java 프로그래머스 Level1 연습문제 모음 #3 (21~32) (0) | 2020.12.30 |
Java 프로그래머스 Level1 연습문제 모음 #1 (1~10) (0) | 2020.12.28 |
프로그래머스 - 체육복 Level1 파이썬 (0) | 2020.12.21 |
프로그래머스 - 완주하지 못한 선수 Level1 파이썬 (0) | 2020.12.20 |