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
'개발일기 > 알고리즘' 카테고리의 다른 글
[알고리즘] DP? 다이나믹 프로그래밍 (0) | 2023.07.16 |
---|---|
[프로그래머스] 개인정보 수집 유효기간 - 자바 (0) | 2023.07.12 |
[프로그래머스] 뒤에 있는 큰 수 찾기 - 자바 (0) | 2023.07.01 |
[프로그래머스] 귤 고르기 - 자바 (0) | 2023.06.30 |
프로그래머스 깃허브로 자동 커밋 (0) | 2023.05.17 |