230619_Mon

KH·2023년 6월 19일
0

TIL

목록 보기
14/58
post-thumbnail

Problems

  1. 이상한 문자 만들기
  2. 자릿수 더하기
  3. 자연수 뒤집기
  4. 내림차순으로 배치하기
  5. 정수 제곱근 판별
  6. 제일 작은 수 제거하기
  7. 콜라츠 추측
  8. 하샤드 수
  9. 3진법 뒤집기
  10. 최소 직사각형
  11. 같은 숫자는 싫어

Attempts

1. 이상한 문자 만들기

입력값에서 알파벳만 바꾸고 공백은 유지하여 return해야 하는데 공백을 죄다 지운 것을 return하려 해서 많이 헤멤.

2. 자릿수 더하기

Character.getNumericValue(stringNumber.charAt(i))

3. 자연수 뒤집기

String은 immutable인 반면 StringBuilder는 mutable하여 조작하기 용이하다

StringBuilder sb = new StringBuilder(s); 
sb.reverse();

4. 내림차순으로 배치

Arrays.sort() 후 맨 뒤의 원소부터 문자열에 추가시킨뒤 Long.parseLong()하여 return함

5. 정수 제곱근 판별

실수형 제곱근과 정수형 제곱근(소수점 아래 버려짐)을 비교하여 두 값이 일치하는 경우를 사용함

6. 제일 작은 수 제거하기

입력 배열을 복사하는 과정에서 그냥 assign 하면 얕은 복사가 일어남. Arrays.copyOf(arr, arr.length)를 사용하여 깊은 복사를 해 줌.

7. 콜라츠 추측

루프에서 int 입력값을 조작하다가 오버플로가 발생한 것을 모른 채 헤멤. long에 입력값을 새로 assign한 뒤 해당 값을 조작하여 해결함.

8. 하샤드 수

Character.getNumericValue(stringNumber.charAt(i))

9. 3진법 뒤집기

Math.pow(3, i) 사용하여 3진법에서 10진법으로 변환함

10. 최소직사각형

완전탐색 문제. 그러나 제대로 구현하지 못하고 헤멤.
결국 구현하기 쉬운 형태로 입력값을 조작하는 풀이를 검색하여 알게 됨.

11. 같은 숫자는 싫어

Stack<Integer> stack = new Stack<>()
스택 클래스의
push(), peek(), size(), get() 메서드 사용

Results

배열 조작 중 index 범위 벗어나는 에러를 자주 발생시켰음.
두 개 뽑아서 더하기 이 문제도 런타임 에러가 나는데 index 범위 때문인듯 함.

Insights

index 조작을 array에서 주로 했었는데 ArrayList를 사용해보는건 어떨까 싶음.
stream도 좀 활용해보고 싶음.

profile
What, How, Why

0개의 댓글