Cute Running Puppy
본문 바로가기
개발일기/알고리즘

[Java] 나만의 프로그래머스 정리

by 징구짱 2023. 2. 18.
728x90

알고리즘을 처음 풀어보았는데 수학과 비슷한 부분들이 많아서 재미있었다.

마치 수학 문제를 푸는것 같은 느낌...

수학도 공식이 필요한것 처럼 알고리즘을 푸는데도 여러가지 필요한 부분이 있었다.

그 부분을 정리해볼 예정이다!

 

 

별 찍기 문제

for문을 돌려도 되지만 .repeat()으로 편하게 표현 가능

 

for문일 때

int a = 5, b = 3;
for (int i = 0; i < b; i++){
    for (int j = 0; j < a; j++){
        System.out.print("*");
    }
    System.out.println("");
}

 

이렇게 표현 가능

int a = 5, b = 3;
for (int i = 0; i < b; i++) System.out.println(("*").repeat(a));

 

 

if / else 문은 삼항연산자로 간단하게 사용 가능

if와 else문으로 나눠 변수에 넣어야하는 방법

int num = 3;
String answer = "";
if (num % 2 == 0) answer = "Even";
else answer = "Odd";
System.out.println(answer);

 

삼항연산자 사용 방법

int num = 3;
System.out.println(num % 2 == 0 ? "Even" : "Odd");

 

 

문자열 쪼개는 것은 Substring 사용으로 편하게 표현 가능
String s = "abcde";
char[] sArray = s.toCharArray();
int i = s.length();

System.out.println(i % 2 == 1 ? "" + sArray[i/2] : s.substring(i/2-1, i/2+1));

 

 

int로 형변환하는 법
System.out.println(Integer.parseInt(s));

 

 

int를 char로 변환하는 법
  char answer = Character.forDigit(c , 10);	// 10진수 char변환

 

 

평균 구하기
int[] arr = {1,2,3,4};  // 2.5
double answer = 0;

int i = 0;
for (; i < arr.length; i++) answer += arr[i];
answer/=i;

System.out.println(answer);
int[] arr = {1,2,3,4};  // 2.5
double answer = 0;

// 둘 다 사용 가능
System.out.println(Arrays.stream(arr).average().orElse(0));
System.out.println(Arrays.stream(arr).average().getAsDouble());

 

 

최소값 / 최대값  구하기
int iMin = Arrays.stream(arr).min().getAsInt();
int iMax = Arrays.stream(arr).max().getAsInt();

 

 

정렬 (오름차순 / 내림차순)
// 오름차순
Arrays.sort(arr);

// 내림차순
Integer[] nums = {1,2,3,4};
Arrays.sort(nums, Collections.reverseOrder());     // Arrays, Collections import 해야함

 

 

문자열 소문자, 대문자 반환
String lower = s.toLowerCase();
// 문자열을 소문자로 반환한다.
String upper = s.toUpperCase();
// 문자열을 대문자로 반환한다.

 

 

오류상황

세미콜론(;) 확인하기

자주 빼먹으니 확인!

 

 

제출시 한두개만 틀린다면 제한 조건을 확인하자. (아닐 경우도 있음)

제한 조건에 따라 변수 선언과 형 변환에 주의

long[] answer = new long[n];
for (int i = 0; i < n; i++){
    answer[i] = (long)x * (i+1);
}

 

 

배열 오류

이런 오류는 배열의 length를 확인하고 index가 맞게 설정되었는지 확인한다.

 

 

코드 실행시 잘 되는데 제출만 하면 다 실패

조건 전제를 만족하지 않을 경우가 많음 다시 천천히 읽어보기

728x90