문제 출처 : 프로그래머스
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.println("a = " + a + "\nb = " +b);
}
}
\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();
for (int i = 0; i < n; i++) { System.out.print(str); }
}
}
줄띄움을 하는 System.out.println이 아닌, System.out.print로 출력해
문자열을 연속해서 붙이고, 붙이는 횟수는 반복문으로 풀었다.
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 = "";
for (int i = 0; i < a.length(); i++) {
if(a.charAt(i) <= 90 && a.charAt(i) >= 65) {
answer += (char)(a.charAt(i)+32);
} else {
answer += (char)(a.charAt(i)-32);
}
}
System.out.println(answer);
}
}
a-z의 아스키는 97~122, A-Z의 아스키는 65~90 이다.
대문자와 소문자의 차이는 32로
32라는 숫자를 더하거나 빼서 대소문자 전환이 가능했다.
아스키로 전환해 대소문자 구분 및 변환을 해주고,
변환값을 빈 문자열에 담아 해결했다.
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) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + " + " + b + " = " + (a + b));
}
}
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
System.out.print(a+b);
}
}
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
for (int i = 0; i < a.length(); i++) {
System.out.println(a.charAt(i));
}
}
}
한 글자씩 반복문으로 출력
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");
}
}
}
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(n + " is " + (n % 2 == 0 ? "even" : "odd"));
}
}
2로 나눴을 때 나머지가 0이면 짝수, 나머지가 0이 아니면 홀수로
if문으로 출력했다.
삼항 연산자로도 풀 수 있을 것 같아 두가지 방식 모두로 풀어봤다.
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
for (int i = 0; i < s; i++){
answer += my_string.charAt(i);
}
answer += overwrite_string;
for (int i = answer.length(); i < my_string.length(); i++){
answer += my_string.charAt(i);
}
return answer;
}
}
my_string의 인덱스만큼만 빈 문자열에 먼저 추가하고
이후는 overwrite_string의 길이만큼 추가,
그 이후는 answer의 마지막 글자부터 i를 시작, my_string의 마지막 길이만큼
반복문을 통해 글자를 추가시켰다.
다른 사람들의 풀이를 보니 문자열 자르기 substring으로 대부분 푼 것 같다......
String 메서드를 공부 했는데도 제대로 활용을 못하는 것 같다. ㅜㅜ
class Solution {
public int solution(int num1, int num2) {
double answer = (double)num1/num2;
answer *= 1000;
return (int)answer;
}
}
double로 형변환 하고, int로 다시 형변환 해서 완성