- 수 조작하기 2
- 수열과 구간 쿼리 3
- 수열과 구간 쿼리 2
풀면서 어려웠던 부분 : answer[i]의 값이 계속 조건에 만족하는 a[j]의 갚으로 덮어져서
문제가 계속 발생, 해당 부분을 해결하기위해 answer[i]의 초기화 값 위치가 중요
첫번째 if 조건에 충족하지 않는 경우 answer[i]의 값은 초기화값이므로 -1을 대입 - 수열과 구간 쿼리 4
풀면서 어려웠던 부분 : 문제에서 요구하는 인덱스 i자체가
기존 arr[i]를 요구하는 것 이므로, 새로 생성한 a에서 슬라이싱한 s를 더해줘야한다
ex) s = 2라면 a[0] = arr[0+2] 를 나타내는 것이다. - 배열 만들기 2
- 사용명령어 : ArrayList<Integer> array = new ArrayList<>();
풀면서 어려웠던 부분 : Math.pow(10,i)*5 로 풀어보려했으나 실패 쳇gpt가없었으면 구현못함
다른방법 : i를 2진수를 반환받아 (1000, 1101... 등) 거기에 5를 곱하게되면 요구하는 값을 반환받게된다.
반환받은 수가 범위 안이면 리스트에 추가한다. - 카운트 업
- 콜라츠 수열 만들기
- 사용명령어 : do-while문 → while조건이 참일때 do의 문장 반복
ArrayList 변환 : array.stream().mapToInt(Integer::intValue).toArray();
내가 할 수 있는 방법 : ArrayList 사이즈의 배열을 만들고 하나씩 대입 - 배열 만들기 4
- 간단한 논리 연산
사용한명령어 : ||(or)과 &&(and) - 주사위 게임 3
https://djhelloworld.tistory.com/60 - 글자 이어붙여 문자열 만들기
다른방법 :
StringBuilder sb = new StringBuilder(); // 빈 StringBuilder 생성
// append 메서드를 사용하여 문자열을 뒤에 추가할 수 있습니다.
sb.append("Hello");
// insert 메서드를 사용하여 특정 위치에 문자열을 삽입할 수 있습니다.
sb.insert(5, ", World!");
// delete 메서드를 사용하여 특정 범위의 문자열을 삭제할 수 있습니다.
sb.delete(5, 7); // "Hello, World!"에서 ", "를 삭제합니다.
// replace 메서드를 사용하여 특정 범위의 문자열을 다른 문자열로 대체할 수 있습니다.
sb.replace(5, 6, "!"); // "Hello, World!"에서 " "를 "!"로 대체합니다.
// toString 메서드를 사용하여 StringBuilder를 String으로 변환할 수 있습니다.
String result = sb.toString(); - 9로 나눈 나머지
※ 중요 체크 포인트 : charAt을 통해 c값을 가져 온 후 해당 문자 'c'를 int로 형변환 하게 되면
해당 문자의 유니코드값이 변하게 된다 그러므로 온전한 값을 얻기 위해서는 '0'을 빼줘야한다.
다른방법 : - 문자열 여러번 뒤집기
- 내가 구현한 코드
→ for문 안에서 StringBuilder이 계속 생성되며 초기화 되고있어 메모리 낭비
- 쳇gpt가 개선한 코드
→ for문 밖에 StringBuilder의 초기화값을 두고
for문 안에 a.setLength(0);을 둬 객체를 초기화
- 사용명령어 : StringBuilder(setLength, append, reverse)
출처 : https://school.programmers.co.kr/learn/challenges/training?order=recent&languages=java&page=2
'Java & Spring > 코딩테스트' 카테고리의 다른 글
프로그래머스 - 기초트레이닝 5일차 (0) | 2024.05.06 |
---|---|
프로그래머스 - 기초트레이닝 4일차 (0) | 2024.05.04 |
프로그래머스 - 기초트레이닝 2일차 (0) | 2024.05.02 |
프로그래머스 - 기초트레이닝 1일차 (0) | 2024.05.01 |
프로그래머스 - 배열의 원소만큼 추가하기 (0) | 2024.04.30 |