본문 바로가기

TIL(Today Ingwang Learned)

TIL)2022-11-22(java)

 


java 알고리즘 문제 풀이


java 문법

- int[] strings =  Arrays.copyOfRange(array, a, b);
   배열의 a~b까지의 범위만 복사해서 넣음


오류(?)

에러(?) : 알고리즘 문제 풀이 후 코딩테스트 출력크기초과 에러 메세지

해결 : 디버깅을위해 썼던 print문 제거


알고리즘 문제 모의고사 

 

1번 문제

생각할 점)

//배열에 모든 달의 일수를 적어준다

// 입력받은 달까지 모두 더하기

// 더한값에 일수 + 98 더하기

//12월이 지나 다음년이 됐을 경우 생각 

 

코드설명 ) 

6 -> 배열에 모든 달의 일수를 적어준다/ 1월부터 시작한다고 가정하면 일수를 더할 필요가 없기 떄문에 맨 앞에 0

10~12 -> 입력받은 달까지의 일수를 모두 더해준다

14 -> 더한값에 입력받은 일수와 98을 더해준다

16~18-> 만약 더한값이 365보다 크다면 1년이 지난 경우이기 때문에  365를 빼준다

19~22 -> 더한값이 가장 적은 일수인 29일보다 큰경우 더한값에서 차례대로 - 일수, -한만큼 count++를 통해 달 알아내기

 

 

3번 문제

생각할 점)

// 공백별로 문자 나눠서 배열에 저장
// 각 수가 소수인지 판별
// 소수라면 그중 가장 큰수
// 아니라면 그중 가장 작은수

 

코드설명 ) 

 

5-> 최대값 판별을 위해 변수에 0저장 

6-> 최소값 판별을 위해 변수에 큰 값 저장

9 -> 문자를 띄어스기별로 나누어 배열에 저장

13~17-> 소수 판별 메소드를 이용하여 소수가 맞으면 max리스트에 저장, 아니라면 min리스트에 저장

19~23 -> 최대값이 max 리스트의 값보다 작으면 최대값에 리스트 값 넣어주면서 최대값 판별

24~28 -> 위처럼 최소값 판별

32~41 -> 소수 판별을 위한 메소드 정이

35~37 -> 입력받은 수에서  2~입력받은수-1 로 나눴을 때 나머지가 0인경우는 소수가 아니므로 false 리턴 후 break, 반대의 경우 true 리턴


잘한점 : 이전에 배운 내용을 활용하여 문제를 잘 풀었다.

아쉬운점 : 모의고사 3번 문제를 풀 때 collections를 사용하면 쉽게 풀수 있는 문제였는데 알고있는 문법임에도 생각이 나지 않아 작성을 하지 못했다? 아예 collections을 사용할 생각조차 안했음 

다음부턴 문제를 풀고 불필요한 코드들을 줄이자.

 

내일 목표 : Challenge문제 35번까지 풀기

 

'TIL(Today Ingwang Learned)' 카테고리의 다른 글

TIL) 2022-11-24(java)  (1) 2022.11.25
TIL) 2022-11-23(java)  (0) 2022.11.24
TIL)2022-11-21(java)  (0) 2022.11.22
TIL)2022-11-19(java)  (0) 2022.11.19
TIL)2022-11-18 (java)  (0) 2022.11.19


Calendar
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
더보기
Archives
Visits
Today
Yesterday