분류 전체보기 8

[프로그래머스] Level 2. H-index (python)

문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다.입출력 예citations retur..

알고리즘 풀이 2025.07.24

[Spring] 용어 및 개념정리

Spring 프레임 워크자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크로서 엔터프라이즈급 어플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 엔터프라이즈급 개발이란 기업을 대상으로 하는 개발이라는 뜻이다. 일반적인 프레임워크의 경우 고가의 WAS를 갖추어야만 동작했지만 Spring 프레임워크는 가볍고 단순한 환경에서 사용할 수 있다. 라이브러리 : 라이브러리는 개발에 필요한 기능이 있을 때 직접 가져와 사용할 수 있도록 자주 사용되는 기능들을 모아 미리 구현해 둔 것이다. 프레임워크 : 프레임워크도 개발에 필요한 기능이 미리 구현되어 있는 것이다. 하지만 프레임워크에는 라이브러리와 달리 기본 틀(프레임..

Spring 2025.03.18

[프로그래머스] (java) 타겟넘버 (BFS, DFS)

문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 - 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. - 각 숫자는 1 이상 50 이하인 자연수입니다. - 타겟 넘버는 1 이..

알고리즘 풀이 2025.03.15

[SQL] SQLD 복습

SQLD를 취득한지 1년즈음 되니 복습의 필요성을 체감해 간략히 정리하였다. 참고) SQLD에서 다루는 DBMS는 Oracle 기준이라고 한다. mySQL에 구현되지 않은 것도 고려하여 정리해보았다. SQL 이란 - Structured Query Language - 관계형 데이터베이스(RDBMS)에서 데이터 조회 및 조작, DBMS 시스템 관리 기능을 명령하는 언어 * 관계형 데이터베이스란 : 계정과 테이블, 스키마(기본적인 구조)를 가진 데이터베이스(데이터의 집합) 테이블 : 행(row)과 열(column, 속성)을 갖는 2차원 구조로 데이터를 입력하여 저장하는 최소 단위하나의 테이블은 반드시 하나의 유저 소유여야 하며, 소유자가 같은 경우 테이블명은 중복될 수 없다  SQL 종류DDL (정의어) - ..

SQL 2025.03.12

[컴퓨터구조] RISC-V 피보나치 수열 어셈블리

컴퓨터구조 수업 프로젝트로 어셈블리 코딩을 진행했는데, 단순재귀는 할만했지만 메모이제이션을 사용하는게 꽤 힘들었던 기억이 난다. 너무 로우레벨이라 생각하는 방식을 평소 코딩이랑 다르게 해야해서 까다로웠다. 먼저 단순 재귀로만 구현한 피보나치# execute시 t5에 input, t6에 output 출력됨li x31, 0 # x31 = output = answeraddi x30, x0, 20 # x30 = input (유지) , 20 넣을시 0x1a6d(6765) 출력add x5, x0, x30 # N (계산을 위해 사용)jal fib # Call the fib functionj END # End of p..

컴퓨터구조 2025.03.09

[Verilog] AES 128

Verilog 프로젝트로, 128비트 입력 및 키가 주어졌을 때의 AES 암호화 및 복호화 알고리즘을 구현했다. https://www.researchgate.net/publication/317615794_Advanced_Encryption_Standard_AES_Algorithm_to_Encrypt_and_Decrypt_Data AES 암호화란 간단하게 설명하자면 입력으로 암호화할 텍스트와 키를 받고, Subbyte - Shiftrows - Mixcolumns - Addroundkey라는 암호화 스테이지를 10번 반복해서 암호화하는 알고리즘이다. 그래서 각각의 암호화 스테이지를 함수(task 및 function)으로 미리 구현하여 사용하였다. 아래 코드는 Verilog로 작성하기 전, 먼저 C언어로 작성..

Verilog 2025.03.08

[프로그래머스] 크기가 작은 부분문자열 (java)

● 문제 설명숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. ● 제한사항 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.  ● 입출력 예tpresult"3141592""271"2"500220839878""7"8"1..

알고리즘 풀이 2025.03.06

[시스템프로그래밍] 리눅스 간단한 ls 구현

# 간단한 ls#include #include #include void do_ls(char []);int main(int ac, char *av[]) { if (ac==1) // 인자(목적 디렉토리)를 넣지 않았을 경우 do_ls("."); else while(--ac) // 인자를 넣었을 경우 { printf("%s:\n", *++av); do_ls(*av); } return 0;}void do_ls(char dirname[]){ DIR *dir_ptr; // 디렉토리를 열기 위한 포인터 struct dirent *direntp; // 파일의 정보를 받아오기 위한 구조체, 아래 dirent 구조체 참고 if((dir_ptr = opendir(dirname))==NULL) // 오류 처리 ..