분류 전체보기
-
99클럽(2기) - 코테스터디 10일차 TIL # Dynamic ProgrammingAlgorithm 2024. 6. 6. 19:11
LeetCode - 338. Counting BitsGiven an integer n, return an array ans of length n + 1 such that for each i (0 ), ans[i] is the number of 1's in the binary representation of i.정수 n이 주어졌을 때, n + 1 길이의 array ans반환ans의 요소는 0부터 n까지의 10진수를 2진수로 변환했을 때의 1의 개수 풀이1) 0부터 n까지의 정수로 이루어진 리스트 생성 리스트 컴프리핸션으로 0부터 n까지의 수를 리스트로 만들었다. 리스트 Comprehension 사용법[표현식 for 요소 in 이터러블] 2) 해당 리스트의 모든 요소를 바이너리로 변환 map 함수로 0부터 ..
-
99클럽(2기) - 코테스터디 9일차 TIL # GreedyAlgorithm 2024. 6. 4. 16:24
프로그래머스 - 체육복문제점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solu..
-
99클럽(2기) - 코테스터디 8일차 TIL # Binary Tree # DFS # 재귀Algorithm 2024. 6. 4. 00:12
LeetCode - 104. Maximum Depth of Binary TreeGiven the root of a binary tree, return its maximum depth.A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 1. 나의 풀이(accepted 되었지만 올바른 풀이 방식이 아님!) 루트 노드를 기준으로 리프 노드 방향으로 왼쪽 자식 노드들의 간선의 개수, 오른쪽 자식 노드들의 간선의 개수를 각각 세어서 그 둘 중 최대값을 2로 나눈 몫에 1을 더한 값을 반환하면 된다고 생각했다. 간선의 개수를 2로 나눈 몫에..
-
99클럽(2기) 코테 스터디 3일차 TIL # 완전탐색Algorithm 2024. 5. 30. 03:08
프로그래머스 - 소수 찾기문제: 한자리 숫자가 적힌 종이 조각이 흩어져 있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어질 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 반환하도록 solution 함수를 완성해주세요.제한 사항:numbers는 길이 1 이상 7 이하인 문자열입니다.numbers는 0~9까지 숫자만으로 이루어져 있습니다."013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.1. 나의 풀이 문제 풀이에 앞서 문제를 어떻게 풀지 정리해보자면, numbers 문자열을 재배치할 수 있는 모든 경우의 수에서 소수가 몇 개인지 확인하면 된다. 소수 판별함수를 따로 만들면 좋을 것..
-
99클럽(2기) 코테 스터디 2일차 TIL # SortingAlgorithm 2024. 5. 28. 14:01
프로그래머스 - 최소 직사각형문제: 모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 반환하도록 solution 함수를 완성해주세요.제한사항: sizes의 길이는 1이상 10,000 이하입니다.sizes의 원소는 [w, h] 형식입니다.w는 명함의 가로 길이를 나타냅니다.h는 명함의 세로 길이를 나타냅니다.w와 h는 1이상 1,000 이하인 자연수입니다. 풀이 (시간복잡도: O(n)) 우선 문제를 풀기 쉽게 재구성해본다. sizes의 원소는 가로와 세로로 구성되어있는데, 사실 가로와 세로는 고정된 게 아니다. 직사각형을 90 회전시키면 회전 이전의 가로는 세로가, 회전 이전의 세로는 가로가..
-
99클럽(2기) 코테 스터디 1일차 TIL # Sorting # Two PointersAlgorithm 2024. 5. 28. 08:56
LeetCode 2824. Count Pairs Whose Sum is Less Than TargetGiven a 0-indexed integer array nums of length n and an integer target, return the number of pairs (i, j) where 0 and nums[i] + nums[j] .* 1 * -50 문제: n개의 integer로 구성된 array 'nums'와 integer 'target'이 주어졌을 때, 아래 조건을 만족하는 (i, j) 쌍의 개수를 반환조건: 0 1. 첫 번째 풀이 (시간복잡도: O(n^2))1) answer값 초기화 answer 값을 0으로 초기화한다. 2) 조건을 만족하는 nums의 인덱스 (i, j) 쌍 찾기 ..
-
[비대칭키 알고리즘] DH, RSA의 수학적 자물쇠와 그 취약점 보완Algorithm 2024. 4. 17. 01:30
들어가며 HTTPS의 주요 기술인 '키 교환'과 '디지털 서명'은 '비대칭키' 알고리즘을 사용합니다. 비대칭키는 '개인키'-'공개키' 쌍으로 이루어진 키를 말하는데, 공개키는 말 그대로 누구에게나 공개되는 반면, 개인키는 비밀로 유지되어야 합니다. 이 글에서는 키 교환과 디지털 서명의 대표적인 알고리즘인 DH(Diffie-Hellman)와 RSA(Riveset-Shamir-Adelman)를 다룹니다. 비대칭키 방식의 DH와 RSA는 정방향으로 계산하기 쉽지만 역방향 계산은 어려운 '일방향 함수'의 개념을 활용합니다. 예를 들어, 큰 두 수의 곱셈은 쉽지만 큰 합성수에 대한 소인수 분해는 어렵습니다. 이와 같이 DH로 생성된 대칭키를 유추하거나, RSA로 암호화된 데이터를 복호화하려면 매우 어려운 역 연..
-
코드트리 사용 후기 #2Algorithm 2024. 4. 6. 23:50
벌써 코드트리를 사용해본지 두 달이 되었네요. 두달 동안 코드트리를 사용해본 결과, 제가 지속적으로 느낀 코드트리의 차별화된 특장점으로 '상세한 개념 설명'과 '질문에 대한 빠른 피드백'을 꼽아봤습니다. 장점 1. 상세한 개념 설명 코드트리의 커리큘럼은 '프로그래밍 기초' - '프로그래밍 연습' - '자료구조・알고리즘' - '알고리즘 입문' - '알고리즘 기본' - '알고리즘 실전'으로 구성되어있습니다. 저는 첫 달에 실력 진단 결과에 따라 '알고리즘 입문'으로 시작했습니다. 그래서 '알고리즘 입문'을 마스터한 후 두번째 달에는 '알고리즘 기본'까지 끝낼 계획이었지만, 문제 풀이에 있어서 친절한 개념 설명의 도움을 많이 받고있다는 것을 체감하고는 개념 설명이 위주인 '프로그래밍 기초'로 커리큘럼을 변경했..