[프로그래머스] Day1 출력

파이널 과제를 마무리하고 (1등 했습니다 우하하)
엊그제 종강을 했어요
6개월 ..
처음 시작할 때는 엄청 길게 느껴졌는데
끝날때가 되니 정말 짧게 느껴지더라구요
무튼 종강을 했다는 건
제가 찐찐찐 백수가 되었다는 겁니다
백수인 내 모습
굉장히 낯설고 뭐 .. 그러네요
프로젝트 깃허브랑 티스토리에 정리도 해야하고
배운거 까먹지 않도록
꾸준히 프로그래머스도 풀려고 합니다

프로그래머스에서 일별로 풀 수 있게
정리가 잘 되어있더라구요
그냥 풀고 말아버리면 내껄로 만들 수 없으니
정리하려고 만든 폴더
말이 좀 길어졌지만
조급해하지말고 힘내서 열심히 해보자 다짐하며
스스로한테 하는 말 !

문자열 출력하기
[문제 설명]
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
[제한사항]
1 ≤ str의 길이 ≤ 1,000,000 str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
입출력 예)
입력 HelloWorld!
출력 HelloWorld!
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
int b = 1000000;
if(a.length() >= 1 && a.length()<=b && !a.contains(" ")){
System.out.println(a);
}else{
System.out.println("error");
}
sc.close();
}
}
오랜만에 자바 하려니까 이렇게 하는거 맞나싶고;
자동완성에 적응해버려서
하나하나 다 치려니 손가락이 당황해버림 ..
손 놓으면 안된다는게 무슨 말인지 피부로 느꼈다
그래도 1~2문제 푸니까 슬슬 떠오름
제한사항에 맞게 if문에 조건넣고
공백이 없게 하기 위해서 contains 사용
length 옆에 () 괄호 빼먹지 말자
contains(" ") 얘도 마찬가지 괄호 절대 챙겨 !
a와 b 출력하기
[문제 설명]
정수 a와 b가 주어집니다.
각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.
[제한사항]
-100,000 ≤ a, b ≤ 100,000
입출력 예)
입력 4 5
출력 a = 4 b = 5
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = 100000;
int a = sc.nextInt();
int b = sc.nextInt();
if(-num<=a && b<=num){
System.out.println("a = " + a);
System.out.println("b = " + b);
}else{
System.out.println("error");
}
}
}
번거로우니 100000은 num으로 변수처리 했다
마찬가지로 if문 써서 조건 넣고
System.out.println()으로 출력 !
문자열 반복해서 출력하기
[문제 설명]
문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.
[제한사항]
1 ≤ str의 길이 ≤ 101 ≤ n ≤ 5
입출력 예)
입력 string 5
출력 stringstringstringstringstring
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int n = sc.nextInt();
if(1<=str.length() && str.length()<=10){
for(int i=1; i<=n; i++){
System.out.print(str);
}
System.out.println();
}
sc.close();
}
}
문자열을 n번 만큼 반복하여 출력하기 위해 for문 사용
처음에는 int i=0; i<=n; i++ 를 했는데 에러가 남
당연하지
i가 0부터 시작인데 i<=n이면 n+1인 상황
때문 i<=n 처리를 하고싶으면
i는 1부터 시작해야된다
i가 0부터 시작한다면 i<n 처리
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int n = sc.nextInt();
System.out.println(str.repeat(n));
}
}
코드는 답이 딱 정해져 있지 않다
나는 for문으로 풀었지만
다른 사람의 코드를 보니 repeat 반복 메서드를 사용했다
프로그래머스는 이렇게
다양한 방법을 접할 수 있어서 좋은 것 같다 !
대소문자 바꿔서 출력하기
[문제 설명]
영어 알파벳으로 이루어진 문자열 str이 주어집니다.
각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
[제한사항]
1 ≤ str의 길이 ≤ 20str은 알파벳으로 이루어진 문자열입니다.
입출력 예)
입력 aBcDeFg
출력 #1AbCdEfG
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
if(1<=a.length() && a.length()<=20){
for(int i=0; i<a.length(); i++){
char c = a.charAt(i);
if(Character.isUpperCase(c)){
answer += Character.toLowerCase(c);
}else{
answer += Character.toUpperCase(c);
}
}
System.out.println(answer);
}
}
}
대문자는 소문자로 바꾸고
소문자는 대문자로 바꾸기
어떻게 접근을 해야할지 고민됐다
우선 if문으로 조건넣고
for문으로 입력받은 a 길이만큼 반복하여
한글자씩 변수 처리
char c = a.charAt(i);
예를 들어 a가 "Hello"이고 i가 1이면
a.charAt(1)은 e를 반환한
변환한 값을 담기 위해 비어있는 변수를 하나 만들었다
대문자일 경우 toLowerCase() 처리하여 소문자로 변환
그렇지 않으면 toUpperCase() 처리하여 대문자로 변환
특수문자 출력하기
[문제 설명]
다음과 같이 출력하도록 코드를 작성해 주세요.
출력 예시)
!@#$%^&*(\'"<>?:;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
System.out.println("!@#$%^&*(\\'\"<>?:;");
}
}
솔직히 처음에 당황했다
그냥 출력하면 되잖아 왜..? 했는데
역슬래쉬를 출력하려면
앞에 \ 역슬래쉬를 한번 더 붙여야 한단다
근데 왜 에러가..?
싶었는데 " 를 문자로 출력하려면
마찬가지로 앞에 역슬래쉬 \를 붙여야 한다더라
\" 처리하면 "를 문자로 인식한다는거지
또 하나 배웠다 !
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
System.out.print(
"!"+"@"+"#"+"$"+"%"+"^"+"&"+"*"+"("+"\\"+"\'"+"\""+"<"+">"+"?"+":"+";");
}
}
이건 다른 사람이 짠 코드..를 봤는데
이거보고 진짜 배꼽 잡았다 ㅋㅋㅋㅋㅋㅋㅋ
이 코드에 있는 댓글이 더 웃겼음
"몸을 쓰면 머리가 편하다"
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 하지만 풀었죠?