전체 글 90

99클럽 코테 스터디 33일차 TIL + 정렬(Reordered Power of 2)

오늘의 과제리트코드 medium으로 분류된 Reordered Power of 2 입니다. 이번 유형도 정렬입니다.문제https://leetcode.com/problems/reordered-power-of-2/description/  먼저 문제 요구사항 요약입니다. 정수가 주어질 때 2의 거듭제곱을 만들 수 있는지 여부를 반환하면 됩니다. 거듭제곱 여부를 쉽게 확인하기 위해 미리 2의 30제곱까지 구해둡니다. 30제곱까지만 구하는 이유는 입력으로 최대 10의 9승(10억)까지만 주어지기 때문입니다. 또한 임의의 정렬이라고 했으나 모두 통일하여 정렬하기 위해 2의 거듭제곱을 오름차순으로 정렬하여 넣어줍니다.List powerOf2Digits = new ArrayList();for (int i = 0; i  ..

99클럽 코테 스터디 32일차 TIL + 정렬(Top K Frequent Elements)

오늘의 과제리트코드 medium으로 분류된 Top K Frequent Elements 입니다. 이번 유형은 정렬입니다.문제https://leetcode.com/problems/top-k-frequent-elements/description/  먼저 문제 요구사항 요약입니다. 문자열이과 정수가 주어지면 문자의 빈도에 따라 내림차순으로 정렬 후 정수만큼 반환해주면 됩니다. 어제의 문자와 완전히 동일하게 풀었습니다. 코드입니다.import java.util.*;class Solution { // 1. num을 센다. // 2. 정렬을 한다. // 3. k만큼 배열에 넣는다. public int[] topKFrequent(int[] nums, int k) { var map = ..

99클럽 코테 스터디 31일차 TIL + 문자열(Sort Characters By Frequency)

오늘의 과제리트코드 medium으로 분류된 Sort Characters By Frequency 입니다. 이번 유형은 문자열 입니다.문제https://leetcode.com/problems/sort-characters-by-frequency/description/  먼저 문제 요구사항 요약입니다. 문자열이 주어지면 문자의 빈도에 따라 내림차순으로 정렬 후 반환하면 됩니다. 입력 제한은 영어 대문자 소문자 숫자로 구성되어 있으며 최대 5 * 10⁵ 길이를 갖고 있으니 O(n²)으로는 풀 수 없습니다. 접근입니다. "문자 빈도"에 따라 문자열을 정렬해야 하니 단순한 생각으로 문자를 먼저 계산합니다. 각 문자에 대한 카운팅은 여러가지 방법이 있겠으나 저는 map을 활용하여 풀이하였습니다. map에서 제공하는 a..

99클럽 코테 스터디 30일차 TIL + 문자열(Minimum Suffix Flips)

오늘의 과제리트코드 medium으로 분류된 Minimum Suffix Flips 입니다. 이번 유형은 문자열 입니다.문제https://leetcode.com/problems/minimum-suffix-flips/description/  먼저 문제 요구사항 요약입니다. 모두 0인 이진 문자열이 있다고 가정하고 이 문자열을 target의 이진 문자열과 일치 시키려면 몇 번의 flip을 해야하는지 반환하면 되는 문제입니다. 문제만 이해하면 이번에도 굉장히 간단히 풀 수 있는 문제입니다. 먼저 반환할 answer 값과 뒤집어야할지 결정할 flip 변수를 선언합니다. 이후에는 주어진 target 문자열을 순회하며 flip 값과 target char 값을 비교하며 뒤집어주면 됩니다. 문제 조건에 보면 i번을 선택하..

99클럽 코테 스터디 29일차 TIL + 문자열(Iterator for Combination)

오늘의 과제리트코드 medium으로 분류된 Iterator for Combination 입니다. 이번 유형은 문자열 입니다.문제https://leetcode.com/problems/iterator-for-combination/description/  먼저 문제 요구사항 요약입니다. 소문자로 정렬된 알파벳 문자열과 조합해야 할 길이가 주어질 때 가능한 모든 조합을 생성하고, 이 조합을 순차적으로 반환하거나 다음 값의 여부를 반환하는 메서드를 작성해야 합니다. 풀이 방법은 최대한 간단히 하기위해 조합 가능한 문자열을 미리 만들어 리스트에 넣어두고 next와 hasNext는 리스트의 값을 이용하는 방식으로 진행하겠습니다. 먼저 초기화입니다. 조합 가능한 문자열을 담을 리스트와 next, hasNext에 사용할..

99클럽 코테 스터디 28일차 TIL + 배열(Group the People Given the Group Size They Belong To)

오늘의 과제리트코드 medium으로 분류된 Group the People Given the Group Size They Belong To 입니다. 이번 유형도 배열 입니다.문제https://leetcode.com/problems/group-the-people-given-the-group-size-they-belong-to/description/  먼저 문제 요구사항 요약입니다. 각 사람의 그룹 크기를 나타내는 배열이 주어질 때 사람들을 각 그룹 크기대로 그룹을 나누면 됩니다. 예제 입력을 따르자면 arr = [3, 3, 3, 3, 3, 1, 3]이면 0~4번째, 6번째 사람은 크기가 3인 그룹이며, 5번째 사람은 크기가 1인 그룹에 속합니다. 먼저 사람들을 각 그룹에 맞게 분류하기 위해 HashMap을 ..

99클럽 코테 스터디 27일차 TIL + 배열(Subrectangle Queries)

오늘의 과제리트코드 medium으로 분류된 Find The Original Array of Prefix Xor 입니다. 이번 유형도 배열 입니다.문제https://leetcode.com/problems/find-the-original-array-of-prefix-xor/description/  먼저 문제 요구사항 요약입니다. prefixXor 배열이 주어질 때 해당 배열을 원래 배열로 복원하여 반환하면 됩니다. 이 문제를 풀기 위해서는 동일한 값을 두 번 XOR하면 원래의 값으로 돌아온다는 XOR의 특성을 알아야 합니다.주어진 prefixXor은 원래 배열의 각 요소까지의 XOR 누적 값을 나타내는데 XOR 연산은 두 비트가 같으면 0, 다르면 1이 되는 연산입니다. 예를 들면 0번째 인덱스는 원래 배열..

99클럽 코테 스터디 26일차 TIL + 배열(Subrectangle Queries)

오늘의 과제리트코드 medium으로 분류된 Subrectangle Queries입니다. 이번 유형은 배열 입니다.문제https://leetcode.com/problems/subrectangle-queries/description/  먼저 문제 요구사항 요약입니다. 사각형을 정수형 2차원 배열로 주었을 때 특정 좌표의 값을 반환하는 메서드, x,y => x2,y2 까지의 값을 업데이트 하는 메서드 하나를 구현하면 됩니다. 사실 설명이라고 할 것 없이 구구단 급의 아주 기초적인 문제라 설명할 게 딱히 없습니다. 먼저 초기화입니다. 입력으로 주어진 값을 다른 메서드에 파라미터로 넘기는게 아닌 전역으로 쓰기 위한 초기화를 진행합니다.int[][] rectangle;public SubrectangleQueries..

99클럽 코테 스터디 25일차 TIL + 그래프 + BFS(순위)

오늘의 과제프로그래머스 Lv.3으로 분류된 순위입니다. 이번 유형은 BFS(넓이 우선 탐색, 그래프) 입니다.문제https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  먼저 문제 요구사항 요약입니다. 선수의 수 n과 경기 결과를 담은 2차원 배열이 주어질 때 정확하게 순위를 알 수 있는 선수의 수를 반환하는 문제입니다. 문제의 유형처럼 그래프 + BFS이니 기본 공식처럼 셋팅을 시작합니다. 첫 번째 셋팅으로 ArrayList를 통해 서로간의 간선을 표현..

99클럽 코테 스터디 24일차 TIL + BFS(가장 먼 노드)

오늘의 과제프로그래머스 Lv.3으로 분류된 가장 먼 노드입니다. 이번 유형은 BFS(넓이 우선 탐색, 그래프) 입니다.문제https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  먼저 문제 요구사항 요약입니다. 입력으로 n개의 노드와 왕복이 가능한 간선이 주어집니다. 이 때 , 1번 노드를 기준으로 가장 먼 노드의 갯수를반환하면 됩니다. 이전에 BFS를 풀었듯 Queue를 활용하되, 새로운 개념인 그래프를 활용하는 문제입니다. 그래프를 활용하는 문제는 최..