Lv. 1 수박수박수박수박수박수? -성공(난이도 : 매우쉬움)
import java.io.*;
import java.util.*;
class Solution {
StringBuilder sb = new StringBuilder();
public String solution(int n) {
String answer = "";
for(int i = 1; i <=n ;i++){
if(i % 2 == 1) sb.append("수");
if(i % 2 == 0) sb.append("박");
}
answer = sb.toString();
return answer;
}
}
Lv. 1 문자열을 정수로 바꾸기 - 성공 (난이도 : 매우쉬움)
class Solution {
public int solution(String s) {
int a = Integer.parseInt(s);
int answer = a;
return answer;
}
}
Lv. 1 시저 암호 - 실패
https://programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
복습할 내용 : char 변환
알파벳 26개
if(ch>='a' && ch<='z') { //소문자
if(ch+n > 'z') {
answer += (char)(ch-26+n);
}else {
answer += (char)(ch+n);
}
}else if(ch>='A' && ch<='Z') { //대문자
if(ch+n > 'Z') {
answer += (char)(ch-26+n);
}else {
answer += (char)(ch+n);
}
}
출처: https://ivory-room.tistory.com/23 [개발로 자기개발:티스토리]
https://ivory-room.tistory.com/23
[프로그래머스 Lv.1] 시저암호 java
문제설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1
ivory-room.tistory.com
Lv. 1 약수의 합 - 성공( 난이도 : 매우쉬움)
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n ; i++){
if(n % i == 0){
answer = answer + i;
}
}
return answer;
}
}
복습 필요한 내용 :
알파벳 대문자(A~Z)는 65번~90번, 소문자(a~z)는 97번에서 122번
마지막 문자 지우기
sb.deleteCharAt(sb.length()-1);
이상함 : 끝에 공백이 있는 경우 예외처리...
실수 : str.toUpperCase()만으로는 자체적으로 바뀌지 않음.
String st = str.toUpperCase()로 변경된 내용을 따로 변수에 담아서 진행.
import java.util.*;
import java.io.*;
class Solution {
StringBuilder sb = new StringBuilder();
public String solution(String s) {
String answer = "";
String[] arr = s.split(" ");
for(String str : arr){
//toLowerCase()
//toUpperCase()
//subString()
//charAt()
String st = str.toUpperCase(); // 일단 대문자로 치환
char[] charArray = st.toCharArray();
for(int i = 0; i < charArray.length; i++){
//소문자로 치환.
if(i % 2 == 1) charArray[i] = (char)((charArray[i] % 'A') + 'a');
}
for(char result : charArray){
sb.append(result);
}
sb.append(" ");
}
if(s.charAt(s.length()-1) != ' '){
sb.deleteCharAt(sb.length()-1);
}
answer = sb.toString();
return answer;
}
}
https://haruple.tistory.com/201
[프로그래머스/JAVA] 이상한 문자 만들기
안녕하세요, 하루플 입니다😀 프로그래머스 이상한문자 만들기 문제입니다. 문제 문자열 s는 한개 이상의 단어로 구성되어있다. 각 단어는 하나 이상의 공백 문자로 구분되어있다. 각 단어의
haruple.tistory.com
아래와 같이 자체적으로 String배열로 만든후 가능.
class Solution {
public String solution(String s) {
String answer = "";
String[] str = s.split("");
int idx = 0; //인덱스
for(int i=0; i<str.length; i++){
if(str[i].equals(" ")){ //띄어쓰기 있다면
idx = 0; //인덱스 0 초기화
}
else if(idx % 2 == 0){ //idx가 짝수면
str[i] = str[i].toUpperCase(); //대문자로 변경
idx++; //idx 증가
}
else if(idx % 2 != 0){ //idx가 홀수면
str[i] = str[i].toLowerCase(); //소문자로 변경
idx++; //idx 증가
}
answer += str[i];
}
return answer;
}
}
출처: https://haruple.tistory.com/201 [하루플스토리:티스토리]
Lv. 1 자릿수 더하기 - 성공
import java.util.*;
import java.io.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(n > 0){
answer = answer + n % 10; //처음 1의자리 더하기 6
//더한 후 1의자리 없애기 12
n = n/10; // 12
}
return answer;
}
}
Lv. 1 콜라츠 추측 - 성공
복습할 내용 : 결과는 int지만 계산과정중에 long이 필요하다는 것을 간과하여 시간낭비.
import java.util.*;
import java.io.*;
class Solution {
static int numbering = 0;
static int input = 0;
public int solution(int num) {
if(num == 1){
return 0;
}
long input = num;
while(input >= 1){
if(input == -1){
return -1;
}
if(input == 1){
return numbering;
}
input = collatz(input);
if(input == -1){
return -1;
}
if(input == 1){
return numbering;
}
}
return numbering;
}
public long collatz(long n){
if(n == 1){
return 1;
}
if(numbering >= 499){
return -1;
}
numbering++;
if(n % 2 == 0){
n = n/2;
return n;
}else{
n = (n*3) + 1;
return n;
}
}
}
Lv. 1 하샤드 수 - 성공
복습할 내용 : (실수) %를 &라고 작성하여 한동안 시간낭비
class Solution {
public boolean solution(int x) {
int total = 0;
int a = x;
//자리수 합 구학.
int input = x;
while(input > 0){
total = total + (input % 10);
input = input / 10;
}
if(a % total == 0 ){
return true;
}else{
return false;
}
}
}
Lv. 1 핸드폰 번호 가리기 - 성공(subString (X) -> substring(O))
실수
import java.io.*;
import java.util.*;
class Solution {
StringBuilder sb = new StringBuilder();
public String solution(String phone_number) {
String answer = "";
String st = phone_number;
String front = st.substring(0,st.length()-4);
String back = st.substring(st.length()-4,st.length());
for(int i = 0 ; i < front.length() ; i++){
sb.append("*");
}
sb.append(back);
answer = sb.toString();
return answer;
}
}
Lv. 1 x만큼 간격이 있는 n개의 숫자 - 성공(난이도 : 매우쉬움)
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
long[] arr = new long[n+1];
//첫 인덱스는 0
for(int i = 1; i <= n ; i++){
arr[i] = arr[i-1] + x;
}
for(int i = 0; i < n; i++){
answer[i] = arr[i+1];
}
return answer;
}
}
Lv. 1 직사각형 별찍기 - 성공
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
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++){
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb.toString());
}
}
'알고리즘' 카테고리의 다른 글
[Algorithm] 6월1일 알고리즘 연습 (프로그래머스 2단계) (0) | 2022.06.02 |
---|---|
[Algorithm] 5월 31일 알고리즘 연습 (0) | 2022.06.01 |
[Algorithm] 5월29일 알고리즘 연습 (0) | 2022.05.29 |
[Algorithm] 5월 26일 알고리즘 연습 (0) | 2022.05.26 |
[Algorithm] 5월 25일 알고리즘 연습 (0) | 2022.05.25 |
댓글