반응형
안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
프로그래머스라는 사이트를 알게되어 예제를 통해 연습을 해보고자 합니다.
하루에 예제를 하나 씩 풀어볼 수 있다면 좋겠습니다만 처음 시도해본 문제가 생각보다 어렵습니다.
코딩테스트연습 - 모든문제 - 난이도 level1 - java 선택
'신고 결과 받기' 라는 테스트에 도전을 해보았습니다. 기본기가 부족하다는 것을 다시한번 느끼게 되었습니다.
테스트 1,2가 통과되어 성공했다고 생각했으나 테스트 24까지 추가 검증 결과 정확성 25%로 처참한 성적을 받았습니다.
문제의 요구사항과 제한사항에 부합하지 않는 모양입니다.
생각해본 풀이방법은
1. record의 중복값을 제거하기
2. id_list의 멤버 별로 신고 당한 경우 신고자를 '신고자배열'에 저장하기
3. 신고당한 횟수가 k이상일 경우 '신고자배열'을 '메일대상자'배열에 추가하기( 신고자배열은 다음 멤버 검토시 초기화)
4. 모든 멤버 검토 완료 후 id_list의 멤버와 '메일 대상자'가 일치할 경우를 카운팅하여 answer배열의 동일한 인덱스에
카운팅한 값을 바인딩하기.
이었는데 뭔가 잘못된 모양입니다.
뭐가 잘못됐는지 공부해야겠습니다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import java.util.ArrayList;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
int temp;
//report 의 중복값 제거
ArrayList<String> reportDist = new ArrayList<>();
ArrayList<String> mailList = new ArrayList<>();
for(String data:report) {
if(!reportDist.contains(data)) {
reportDist.add(data);
}
}
String[] reportD = new String[reportDist.size()];
int tempco = 0;
for(String data:reportDist) {
reportD[tempco++] = data;
}
for(String member:id_list) {
int reportCount =0;
temp = 0;
ArrayList<String> memberReport = new ArrayList<>();
for(int i=0; i<reportD.length;i++) {
if((member.equals(report[i].split(" ")[1]))) {
memberReport.add(reportD[i].split(" ")[0]);
reportCount++;
}
}
if (reportCount>=k) {
for(String reportsucc:memberReport) {
mailList.add(reportsucc);
}
}
}
for(int q=0; q<id_list.length;q++) {
int sum = 0;
for(String mail:mailList) {
if(id_list[q].equals(mail)) {
sum++;
}
}
answer[q] = sum;
}
return answer;
}
}
|
cs |
반응형
'개발 > 코딩' 카테고리의 다른 글
[JAVA] SET를 배열로 (0) | 2022.03.12 |
---|---|
[JAVA] 파이썬의 딕셔너리 같은 HashMap (0) | 2022.03.12 |
[프로그래밍] JAVA 웹 개발 공부 계획, 뭘 공부해야 하는지도 중요하다. (0) | 2022.03.11 |
[프로그래밍] 게시판 만들기 도전,220302, 아직은 부족한 게시판 (0) | 2022.03.02 |
[프로그래밍] 게시판 만들기 도전,220301,jsp 뷰 (0) | 2022.03.01 |