목록java (45)
Welcome! Everything is fine.
📌 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr📌 풀이이번 문제는 게임에서 실패율이 높은 스테이지부터 내림차순 정렬해 반환하는 문제이다. 실패율은 도전한 사용자의 수 / 아직 클리어하지 못한 사용자의 수이다. 각각의 실패율만 구하고 실패율 순으로 정렬을 하지 못해 틀렸던 문제... 전체적인 코드의 흐름은 다음과 같다.각 스테이지별 도전한 사용자 수와 해당 스테이지를 클리어하지 못한 사용자의 수를 구한다.HashMap에 스테이지와 실패율을 계산해 저장한다.실패율을 기준으로 내림차순 정렬한다.먼저 다음과 같이 각 스테이지별 도전한 사용자 수를 succ..
📌 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr📌 풀이키패드 간 거리를 구하는 방법과 *, 0, #을 처리하는 방법을 몰라 답을 보고 푼 문제이다. 먼저 *, 0, #은 다음과 같이 차례대로 10, 11, 12로 설정한 후 문제를 푼다.123456789*(10)0(11)#(12)numbers 배열을 돌면서 순서대로 번호를 누르며 왼손으로 눌렀는지 오른손을 눌렀는지 판단한다.누른 번호가 1, 4, 7 이라면왼손으로 키패드를 누르고 왼손을 누른 자리로 이동시킨다.누른 번호가 ..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 성격 유형과 선택지, 성격 유형 점수를 각각 해시맵에 저장한 후 푼 문제였다. 일단 나는 아래 코드와 같이 한땀한땀 해시맵에 저장하긴 했는데..더 간단하고 효율적인 방법이 있을 수도 있다.🤔 HashMap map = new HashMap(); map.put('R', 0); map.put('T', 0); map.put('C', 0); map.put('F', 0); map.put('J', 0); map.put('M', 0); map.put('A', 0); map.put('N', 0); HashM..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 소수 판별하기 문제를 풀기 전에, 소수를 판별하는 알고리즘을 짜보자! 소수란 1과 자기 자신만을 약수로 가지는 수이다. 즉, 2부터 자기 자신 - 1 까지의 수 중에서 하나라도 약수가 존재한다면 그 숫자는 소수가 아니다. 이대로 코드를 짠다면 다음과 같이 짤 수 있을 것이다. public static boolean isPrime(int n) { if (n < 2) return false; else { for (int i = 2; i < n; i++) { if (n % i == 0) return f..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 처음 작성한 코드 - 오답 이번 문제는 1부터 number까지 각 숫자의 약수의 개수를 구한 후, limit을 초과한다면 그 수를 power로 수정해 약수의 개수의 합을 반환하는 문제이다. 처음 작성한 코드는 기존 테스트 케이스에서는 통과했지만 제출을 하니 시간초과로 오답처리 되었다. 찾아보니 약수의 개수를 세는 부분에서 시간 초과가 난 것이었다. 내가 작성한 코드처럼 약수를 구할 때 1부터 number까지 돌며 모든 경우를 탐색한다면 O(N)의 시간복잡도를 가지게 된다. 만약 제한사항대로 num..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 데이터를 기준에 맞게 정렬하는 문제였다. 다른 코드들을 보니 람다식과 Comparator가 가장 많이 사용된 것 같다. 내가 작성한 코드의 전체적인 흐름은 다음과 같다. 주어진 ext와 sort_by에 맞는 인덱스 e, s를 구한다. 조건에 맞는 데이터를 넣을 list를 선언한다. data[e]의 값이 val_ext 보다 작을 때만 list에 데이터를 추가한다. sort_by에 해당하는 값을 기준으로 오름차순 정렬한다. list를 int형 배열로 바꾼 후 반환한다. 주어진 ext와 sort_..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 - 배열 사용 나는 이 문제를 그냥 배열을 이용해 풀었지만, 다른 사람들의 코드를 보니 우선 순위 큐를 사용한 사람들이 많았다. 실제로 배열을 사용한 코드와 우선 순위 큐를 사용한 코드를 비교해보니 우선 순위 큐가 더 빨랐다. 이번 문제를 통해 우선 순위 큐를 사용하는 방법을 공부해보는 것이 좋겠다. 내가 처음 작성한 답안은 배열과 정렬을 이용하였다. 먼저 명예의 전당에 들어가는 점수를 저장하는 hallOfFameScores 배열과 명예의 전당의 최하위 점수를 저장하는 answer 배열을 만..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 terms 배열만 HashMap에 넣어놓고 고민만 하다 끝나버린 문제.. 날짜나 시간을 다루는 게 아직 익숙하지 않아서 많이 풀어봐야할 것 같다. 내가 생각했던 풀이는 다음과 같다. terms 배열을 HashMap에 저장한다. privacies 배열을 돌면서 개인정보 수집일자와 약관 종류를 불러온다. 개인정보 수집일자 + 약관 종류에 따른 유효기간의 값이 오늘 날짜보다 작거나 같으면 유효기간이 지난 것이므로 파기해야한다. 파기해야 할 개인정보의 번호(인덱스)를 리스트에 추가한다. 날짜를 년,..