항해99/99club1기TIL

[99club/TIL] 4주차 - 월요일 TIL(Today I Learned)

delay100 2024. 4. 16. 20:34
728x90
반응형
SMALL

안녕하세요. delay100 입니다!

오늘도 정규 세션에 참가하였어요! 그리고 게더타운 디자인을 또 손봐주신 것 같아요!

뭔가 좀더 촘촘히 있어서 더 옹기종기 모여있는 느낌...! 

원래 월요일에 올리려했는데... 2번 문제를 헤메다가 못 풀었어요ㅠㅠ

2번은 화요일꺼에 올리고 늦게라도 월요일 TIL 올립니다..!

99club 게더타운


미들러 문제


1번. 신고 결과 받기

https://school.programmers.co.kr/learn/courses/30/lessons/92334

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.io.*;
import java.util.*;

class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        int id_list_length = id_list.length;
        
        // 1. HashMap을 이용하여 id_list에 대해 key=id, value=index를 만듦
        HashMap<String, Integer> id_map = new HashMap<String, Integer>();
        for(int i=0; i<id_list_length; i++) {
            id_map.put(id_list[i], i);
        }
        
        // 2. ban list를 만들어서 해당 index에 있는 사람을 신고한 사람의 index를 저장
        int[][] ban_list = new int[id_list_length][id_list_length];
        for(int i=0; i<report.length; i++) {
            String[] report_split = report[i].split(" ");
            int user_index = id_map.get(report_split[0]);
            int ban_index = id_map.get(report_split[1]);
            
            ban_list[ban_index][user_index] = 1;
        }
        
        
        // 3. mail list를 만들어서 ban list에서 k보다 크거나 같은 값을 가진 index에 대한 사람에게 메일 추가
        int[] mail = new int[id_list.length];

        for(int i=0; i<id_list.length; i++) {
            ArrayList<Integer> al = new ArrayList<>();
            int sum = 0;
            for(int j=0; j<id_list.length; j++) {
                int b = ban_list[i][j];
                if(b > 0) {
                    al.add(j);
                    sum++;
                }
            }
            if(sum >= k) {
               for(int j=0; j<al.size(); j++) {
                    mail[al.get(j)]++;
                }
            }
        }
            
        return mail;
    }   
}


+ 비기너 문제

1번.

https://school.programmers.co.kr/learn/courses/30/lessons/12926

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2번.

https://school.programmers.co.kr/learn/courses/30/lessons/12935

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

+ 챌린저 문제

1번.

https://school.programmers.co.kr/learn/courses/30/lessons/138475

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2번.

https://school.programmers.co.kr/learn/courses/30/lessons/136797

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


봐주셔서 감사합니다. 피드백 환영합니다.

728x90
반응형
LIST