본문 바로가기

java

(23)
[JAVA/알고리즘] 자연수 뒤집어 배열로 만들기 https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr import java.util.*; class Solution { public int[] solution(long n) { ArrayList answer = new ArrayList(); while (n > 0) { answer.add((int) (n % 10)); n /= 10; } r..
[JAVA/알고리즘] 완주하지 못한 선수 HashMap을 사용했고, 모든 참가자를 HashMap에 넣은 다음에 key를 Integer로 줘서(넣을 때마다 1씩) 완주한 선수인 경우에 1씩 줄여주었다. 처음엔 boolean으로 줘서 완주하면 true로 바꿔준 다음에 유일한 false만 반환하려 했으나 동명이인 문제로 그냥 0, 1, 2 이런 식으로 관리하였다. 처음에 선수를 넣을 때 +1씩 증가하게 했더니, 원래 HashMap이 없어서 새로 생성해야하는 경우 NullPointer 에러가 나길래 조건문을 추가했는데, 다른 사람들 풀이를 보니까 getOrDefault라는 메소드를 사용해주었다. 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드라고 한다. 아래 참고했던 블로그 링크를 첨부한다. 다른 풀이 중에 두 배열을 ..
[TroubleShooting] 해쉬맵(HashMap)에서 순서가 바뀌는 문제 카카오 문제인 [신고 결과 받기] 문제를 풀기 위해 HashMap을 사용했는데, 분명 배열에서 값을 받아와 먼저 HashMap의 key 값을 지정해준 후, iterator을 이용하여 다시 해쉬맵을 출력했더니 순서가 뒤바뀌는 문제가 발생했다. 문제를 설명하기 조금 어려운데, 분명 a-b-c-d순서로 값을 넣어줬는데(put 이용) iterator를 이용해 해쉬맵을 출력했더니 순서가 이상해지는 문제가 생겼다. 검색해보니, HashMap이 원래 그렇다고 한다.. 입력된 순서를 지키고 싶으면 그냥 HashMap이 아니라 LinkedHashMap을 써줘야한다.
[JAVA/알고리즘] 나머지가 1이 되는 수 찾기 https://programmers.co.kr/learn/courses/30/lessons/87389?language=java 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 내 풀이 class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i
코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Java반) (3) 스터디 3,4주차 * 본 후기글은 프로그래머스의 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디 (Java반) 참여 후 솔직하게 적는 글입니다. * 1편에서는 스터디 전반에 관한 내용을 기록했으며, 2,3편에서는 스터디에서 배운 내용들 위주로 작성하였습니다. * 저작권에 위배되거나 문제되는 내용이 있다면, 알려주시면 수정하도록 하겠습니다. 🙋 참여한 프로그램 👇 https://programmers.co.kr/learn/courses/12730 [스터디/11기] 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Java반) 🚀 아쉽지만 11기는 마감되었어요. 12기 오픈 알림 신청하고, 최저가에 수강하세요! 최저가 알림 받기 × 청년/경력보유여성 등 임팩트캠퍼스 지원 조건에 해당한다면 참가비 전액 지원! (상세 조 pro..
코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Java반) (2) 스터디 1,2주차 * 본 후기글은 프로그래머스의 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디 (Java반) 참여 후 솔직하게 적는 글입니다. * 1편에서는 스터디 전반에 관한 내용을 기록했으며, 2-3편에서는 스터디에서 배운 내용들 위주로 작성하였습니다. * 저작권에 위배되거나 문제되는 내용이 있다면, 알려주시면 수정하도록 하겠습니다. 🙋 참여한 프로그램 👇 https://programmers.co.kr/learn/courses/12730 [스터디/11기] 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Java반) 🚀 아쉽지만 11기는 마감되었어요. 12기 오픈 알림 신청하고, 최저가에 수강하세요! 최저가 알림 받기 × 청년/경력보유여성 등 임팩트캠퍼스 지원 조건에 해당한다면 참가비 전액 지원! (상세 조 pro..
코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Java반) (1) 후기 * 본 후기글은 프로그래머스의 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디 (Java반) 참여 후 솔직하게 적는 글입니다. * 1편에서는 스터디 전반에 관한 내용을 기록했으며, 2,3편에서는 스터디에서 배운 내용들 위주로 작성하였습니다. 저 역시 이 프로그램에 참여하기 전에 많은 고민을 했기에, 후에 이 스터디를 고민하고 있을 분들에 도움이 되고자 글을 남깁니다. 개개인마다 느끼는 것에 차이가 있을 수 있으니, 본 포스팅은 참고만 해주세요😉 🙋 참여한 프로그램 👇 https://programmers.co.kr/learn/courses/12730 [스터디/11기] 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Java반) 🚀 아쉽지만 11기는 마감되었어요. 12기 오픈 알림 신청하고, 최저가에 수..
[JAVA/알고리즘] 정수 제곱근 판별 💡임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 🖥 나의 풀이 class Solution { public long solution(long n) { long sqrRt = (long)Math.sqrt(n); if (sqrRt * sqrRt == n) { return (sqrRt + 1) * (sqrRt + 1); } else { return -1; } } } 🖥 다른 풀이 class Solution { public long solution(long n) { if (Math.pow((int)Math.sqrt(n), 2) == n) ..