char character = 'H';
String str = "Hello";
String.charAt(int index) : char ch = String.charAt(0);
String.toCharArray()
String az = "";
abcdef.....z
char digit = '9';
int digitToInt = digit - '0' ; 57 - 48
digitToInt 의 값은? 숫자 9
String az = "";
abcdef.....z
class Solution {
public int[] solution(long n) {
// 입력된 long 타입의 n을 문자열로 변환하여 저장
String s = String.valueOf(n);
// StringBuilder를 사용하여 문자열을 뒤집음
StringBuilder sb = new StringBuilder(s);
sb = sb.reverse();
// 뒤집힌 문자열을 각 자릿수마다 나눠서 배열로 저장
String[] ss = sb.toString().split("");
// 정답을 저장할 int 배열 선언
int[] answer = new int[ss.length];
// 각 문자열을 정수로 변환하여 정답 배열에 저장
for (int i = 0; i < ss.length; i++) {
answer[i] = Integer.parseInt(ss[i]);
}
// 최종 결과인 정답 배열 반환
return answer;
}
}
import java.util.stream.IntStream;
class Solution {
public int[] solution(long n) {
return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
}
}
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12926
코드
문제 풀이
StringBuilder
StringBuilder builder = new StringBuilder();
for(char c : s.toCharArray()){
//c를 n만큼 민 문자를 builder에 붙이기
}
private char push(char c, int n){
//c를 n만큼 밀어 변환
}
d. 알파벳이 아닌 경우 문자를 그대로 이어 붙이기
private char push(char c, int n){
if( !Character.isAlphabetic(c)) return c;
//if(!(c >= 'A' && c<= 'Z')&& !(c>='a' && c<='z')) return c;
//c를 n만큼 밀기
int offset = Character.isUpperCase(c) ? 'A' : 'a';
int position = c - offset;
position = (position + n) % ('Z' - 'A' +1);
return (char) (offset + position)
}
e. 알파벳인 경우 n만큼 밀어 이어 붙이기
a ==>0 ~z (25) z+1 =26 ==> 0 되돌려야 한다. 즉, 공통적으로 적용
알파벳을 0~25 인 숫자로 변환 n만큼 미는 것은 같은 로직 적용
int offset = Character.isUpperCase(c) ? 'A' : 'a';
int position = c - offset;
position = (position + n) % ('Z' - 'A' +1);
return (char) (offset + position)
for(char c: s.toCharArray()){
builder.append(push(c,n))
}
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
// 문자를 공백으로 분리
String[] words = s.split(" ");
// 공백별로 짝/홀수를 구현하기 위해
for(String word : words){
for(int i=0; i<word.length(); i++){
char c = word.charAt(i);
if(i % 2 ==0){
// 짝수 번째
answer.append(Character.toUpperCase(c));
}
else{
// 홀수번째
answer.append(Character.toLowerCase(c));
}
}
// 출력 될 때는 공백이 필요하니 공백 추가
answer.append(" ");
}
// 공백 제거 후 결과 반환
return answer.toString().trim();
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
int input= 0 ;
Scanner sc = new Scanner(System.in);
input = sc.nextInt();
recursive(input);
}
public static void recursive(int input)
{
if(input == 0) { return;}
else {
System.out.println("recursive");
recursive(input-1);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
int input= 0 ;
Scanner sc = new Scanner(System.in);
input = sc.nextInt();
recursive(input);
}
public static void recursive(int input)
{
if(input == 0) { return;}
else {
System.out.print(input + " ");
recursive(input-1);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
int input= 0 ;
Scanner sc = new Scanner(System.in);
input = sc.nextInt();
recursive(input);
}
public static void recursive(int input)
{
int sum = 0;
if(input == 0) { return;}
else {
for(int i = 1; i<=input; i++){
sum += i;
}
}
System.out.print(sum);
}
}
sum
변수를 전역 변수로 선언하여 두 함수에서 공유해야 한다.import java.util.Scanner;
public class Main {
static int sum = 0;
public static void main(String[] args){
int input= 0 ;
Scanner sc = new Scanner(System.in);
input = sc.nextInt();
recursive(input);
}
public static void recursive(int input)
{
if(input == 0) {
System.out.print(sum);
return;}
else {
sum += input;
recursive(input-1);
}
}
}
회고라기 보다는 나의 피곤도 상태..이번주 내내 집중 안되는데 집중력 잡고 있었다.. 월, 화를 제대로 못쉬었나... 주말 알바하고 있는 지금 이 순간도 너무 피곤하다... 체력이 중요한게 이건가 이번달안에 운동 끊어야지...