Adventure Time - Finn 3
본문 바로가기

분류 전체보기380

곳감(모래시계) 현수는 곳감을 만들기 위해 감을 깍아 마당에 말리고 있습니다. 현수의 마당은 N*N 격자판으 로 이루어져 있으며, 현수는 각 격자단위로 말리는 감의 수를 정합니다. 그런데 해의 위치에 따라 특정위치의 감은 잘 마르지 않습니다. 그래서 현수는 격자의 행을 기준으로 왼쪽, 또는 오른쪽으로 회전시켜 위치를 변경해 모든 감이 잘 마르게 합니다. 만약 회전명령 정보가 2 0 3이면 2번째 행을 왼쪽으로 3만큼 아래 그림처럼 회전시키는 명령 입니다. import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())n = int(input())# arr = list(map(int,input().split()))# n = input()arr = [.. 2026. 4. 14.
Vite로 생성한 React 프로젝트의 폴더 구조 살펴보기 Vite가 자동으로 만들어주는 폴더와 파일들, 각각 어떤 역할을 하는지 하나씩 짚어봅니다.들어가며앞서 Vite를 사용해 React 초기 프로젝트를 생성해 보았습니다. Vite는 복잡한 TypeScript 설정까지 자동으로 처리해주기 때문에 새로운 React 프로젝트를 만들 때 매우 유용한 도구입니다.프로젝트를 생성하면 기본적인 폴더 구조와 파일들이 자동으로 만들어지는데, 이번 글에서는 이 폴더와 파일들이 각각 어떤 의미를 가지는지 살펴보겠습니다.전체 폴더 구조 한눈에 보기my-react-app/├── node_modules/├── public/├── src/│ ├── assets/│ ├── App.css│ ├── App.tsx│ ├── index.css│ ├── main.tsx│ └.. 2026. 4. 13.
Vite로 React 프로젝트 생성하기 CRA는 이제 그만. Vite를 사용해 빠르고 가벼운 React 개발 환경을 구축하는 방법을 단계별로 알아봅니다.1. 사전 준비Vite로 React 프로젝트를 생성하려면 Node.js가 설치되어 있어야 합니다. Node.js를 설치하면 패키지 매니저인 npm도 함께 설치됩니다.에디터는 Visual Studio Code를 사용합니다. VS Code를 실행한 뒤 상단 메뉴에서 File → Open Folder를 클릭하여 프로젝트에 사용할 빈 폴더를 선택합니다.폴더를 선택하면 VS Code가 다시 열리고, 왼쪽 Explorer 탭에 선택한 폴더 이름이 표시됩니다. 이 상태에서 Terminal → New Terminal을 클릭하여 내장 터미널을 열어줍니다.2. 프로젝트 생성 명령어터미널에 다음 명령어를 입력합니.. 2026. 4. 13.
격자판 최대합 5*5 격자판에 아래롸 같이 숫자가 적혀있습니다.10 13 10 12 1512 39 30 23 1111 25 50 53 1519 27 29 37 2719 13 30 13 19N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합 니다. import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())n = int(input())# arr = list(map(int,input().split()))# n = input()arr = [list(map(int,input().split())) for _ in range(n)]max = -2174000000lsum = 0rsum = 0for i in r.. 2026. 4. 13.
순환 신경망으로 IMDB 리뷰 분류하기 - Word embedding (단어 임베딩) 순환신경망에서 텍스트를 처리할때 자주 사용하는 방법! 단어 임베딩각 단어를 고정된 크기의 실수 벡터로 바꾸어 줌↑ 10개의 실수 벡터로 단어 'cat' 을 임베딩 이런 단어 입베딩으로 만들어진 벡터는 One-Hot encoding 된 벡터보다 훨씬 의미있는 값으로 채워져 있기에 자연어 처리 에서 더 좋은 성능을 내는 경우가 많다 keras 에는 단어 임베딩 벡터를 만드는 Embedding layer 준비되어있음 EmbeddingEmbedding 레이어도 모델에 추가되어 학습되는 레이어 다 (즉 parameter 가 있다!)input_dim x output_dim 개의 parameter 학습내부적으로 table 형태의 구조처음에는 모든 벡터가 랜덤으로 초기화 되지만 훈련을 통해 데이터에서 점점 좋은 단.. 2026. 4. 13.
수들의 합 import syssys.stdin=open("input.txt","rt")n,m = map(int,input().split())# n = int(input())arr = list(map(int,input().split()))# n = input()# cnt = 0# 하나하나 전부 구하게 됨# for i in range(n):# sum = 0# for j in range(i,n):# sum += arr[j]# if sum == m:# cnt +=1# break# if sum > m:# breakcnt = 0tot = 0rt = 0lt = 0while True: if tot N개의.. 2026. 4. 13.
두 리스트 합치기 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로 그램을 작성하세요import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())# n = int(input())# arr = list(map(int,input().split()))# n = input()n = int(input())arrN = list(map(int,input().split()))m = int(input())arrM = list(map(int,input().split()))res = []# print(sorted(arrN+arrM)) # 파이썬 내장함수indexN = 0indexM = 0for i in range(n+m): .. 2026. 4. 13.
순환 신경망으로 IMDB 리뷰 분류하기 목표 : 순환 신경망을 만들어 리뷰 데이터 셋에 적용해서 리뷰를 긍정과 부정으로 분류하기핵심 키워드 : 말뭉치, 토큰, 원 - 핫 인코딩, 단어 임베딩핵심 패키지와 함수 : pad_sequences(), to_categorical(), SimpleRNN, Embedding데이터셋 : IMDB 데이터 셋IMDB 리뷰 데이터셋imdb.com 에서 수집한 리뷰를 감상평에 따라 '긍정' 과 '부정' 으로 분류해 놓은 데이터 셋총 50,000개의 샘플훈련:테스트 => 25,000개:25,000개 NLP 와 말뭉치(corpus)자연어처리(natural language processing, NLP) 는 컴퓨터를 사용해 인간의 언어를 처리하는 분야ex ) 음성인식, 기계번역, 감성 분석, 주제 분석, 챗봇자연어 처리 .. 2026. 4. 12.
카드 역배치(정올 기출) 1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한 줄로 놓 여있다. 각 카드의 위치는 카드 위에 적힌 숫자와 같이 1부터 20까지로 나타낸다. 이제 여러분은 다음과 같은 규칙으로 카드의 위치를 바꾼다: 구간 [a, b] (단, 1 ≤ a ≤ b ≤ 20)가 주어지면 위치 a부터 위치 b까지의 카드를 현재의 역순으로 놓는다. 예를 들어, 현재 카드가 놓인 순서가 위의 그림과 같고 구간이 [5, 10]으로 주어진다면, 위치 5부터 위치 10까지의 카드 5, 6, 7, 8, 9, 10을 역순으로 하여 10, 9, 8, 7, 6, 5로 놓는다. 이제 전체 카드가 놓인 순서는 아래 그림과 같다. 이 상태에서 구간 [9, 13]이 다시 주어진다면, 위치 9부터 위치 13까지의 카.. 2026. 4. 12.
숫자만 추출 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다. 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 120를 출력하고, 다음 줄에 120 의 약수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())# n = int(input())# arr = list(map(int,input().split()))n .. 2026. 4. 12.
회문 문자열 검사 N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())n = int(input())# arr = list(map(int,input().split()))for i in range(n): text = input().lower() # upper for j in range(len(text)): if text[j] != text[-1 - j]: print(f"#{i+.. 2026. 4. 12.
TypeScript 유틸리티 타입(Utility Types) 기존 타입을 변환하고 조합하는 내장 유틸리티 타입들을 정리합니다.기본 인터페이스아래 예시들은 모두 이 User 인터페이스를 기반으로 합니다.interface User { id: number; name: string; age: number; gender?: "m" | "f";}1. keyof객체 타입의 모든 키를 유니온 타입으로 추출합니다.type UserKey = keyof User; // "id" | "name" | "age" | "gender"const uk: UserKey = "age"; // ✅ OKconst uk2: UserKey = "email"; // ❌ Error — User에 없는 키💡 keyof는 유틸리티 타입은 아니지만, Record나 Pick 등과 함께 자주 쓰이.. 2026. 4. 11.
TypeScript 제네릭(Generic) 타입을 미리 고정하지 않고, 사용하는 시점에 결정하는 제네릭의 기본부터 제약 조건까지 정리합니다.1. 제네릭이 필요한 이유동일한 함수를 다양한 타입의 배열에 사용하고 싶다고 가정해봅시다.// number 배열, string 배열 모두 길이를 구하고 싶다면?// → 함수 오버로드? 유니온 타입?// → 타입이 계속 늘어나면 그때마다 추가해야 한다오버로드나 유니온으로도 해결할 수 있지만, 타입이 늘어날 때마다 코드를 수정해야 합니다. 제네릭을 사용하면 선언 시에는 타입을 비워두고, 호출 시에 타입을 결정할 수 있습니다.2. 제네릭 함수를 타입 파라미터라고 합니다. 함수를 호출할 때 전달하는 타입에 따라 T가 결정됩니다.function getSize(arr: T[]): number { return arr.l.. 2026. 4. 11.
TypeScript 클래스(Class) JavaScript 클래스와의 차이점부터 접근 제한자, static, 추상 클래스까지 단계별로 정리합니다.1. JS 클래스와 TS 클래스의 차이JavaScript에서는 constructor에서 바로 this.color를 할당해도 문제가 없습니다. 하지만 TypeScript에서는 멤버 변수를 먼저 선언해야 합니다.// ❌ TypeScript에서는 에러class Car { constructor(color) { this.color = color; // color가 선언되지 않음 }}// ✅ 멤버 변수를 먼저 선언class Car1 { color: string; constructor(color: string) { this.color = color; } start() { console.. 2026. 4. 11.
TypeScript 리터럴 · 유니온 · 교차 타입 정리 타입을 더 정밀하게 제어하는 세 가지 핵심 기법을 정리합니다.1. 리터럴 타입 (Literal Types)변수에 들어올 수 있는 값을 특정 값으로 한정하는 타입입니다.const vs let의 타입 추론 차이const userName1 = "Bob"; // 타입: "Bob" (리터럴 타입)let userName2 = "Tom"; // 타입: stringconst는 값이 변하지 않으므로 TypeScript가 "Bob"이라는 리터럴 타입으로 추론합니다. 반면 let은 값이 바뀔 수 있어 넓은 string 타입으로 추론됩니다.문자열 리터럴 타입 활용type 별칭과 함께 사용하면 허용 가능한 값을 명확히 제한할 수 있습니다.type Job = "police" | "developer" | "teacher";.. 2026. 4. 11.
TypeScript 함수 타입 함수의 매개변수와 반환값에 타입을 지정하는 기본기부터, 오버로드까지 단계별로 정리합니다.1. 함수의 반환 타입 지정함수 선언 시 괄호 뒤에 반환 타입을 명시합니다. 명시한 타입과 실제 반환값이 다르면 컴파일 에러가 발생합니다.// number를 반환function add1(num1: number, num2: number): number { return num1 + num2;}// 반환값이 없는 함수function add2(num1: number, num2: number): void { console.log(num1 + num2);}// boolean을 반환function isAdult(age: number): boolean { return age > 19;}⚠️ 반환 타입을 number로 지정해놓고.. 2026. 4. 11.
TypeScript 인터페이스(Interface) 객체의 타입을 정의하는 핵심 도구, 인터페이스의 기본부터 확장까지 단계별로 정리합니다.1. 왜 interface가 필요한가?object 타입으로 변수를 선언하면 프로퍼티에 접근할 수 없습니다.let user: object;user = { name: 'xx', age: 30}console.log(user.name); // ❌ Error — object 타입에는 name이 없음이 문제를 해결하기 위해 interface로 객체의 구조를 명확히 정의합니다.interface User { name: string; age: number;}let user: User = { name: 'xx', age: 30}user.age = 10; // ✅ 정상 동작console.log(user.age).. 2026. 4. 11.
TypeScript 기초 타입 정리 변수 선언부터 enum까지, 타입스크립트의 핵심 타입 시스템을 정리합니다.1. 기본 타입 — string, number, booleanTypeScript의 가장 기본이 되는 세 가지 원시 타입입니다. 변수 선언 시 콜론(:) 뒤에 타입을 명시합니다.let car: string = 'bmw';let age: number = 30;let isAdult: boolean = true;타입을 명시하면 해당 변수에 다른 타입의 값을 할당할 때 컴파일 단계에서 에러를 잡아줍니다. 런타임 에러를 사전에 방지할 수 있는 핵심 장점입니다.2. 배열 타입배열은 두 가지 문법으로 선언할 수 있습니다. 기능은 완전히 동일하며, 팀 컨벤션에 따라 선택하면 됩니다.// 방법 1: 타입[]let a: number[] = [1, 2,.. 2026. 4. 11.
타입스크립트를 사용하는 이유 function add(num1,num2) { console.log(num1,num2);}add();add(1);add(1,2);add(3,4,5);add('hello','world');// NaN// NaN// 3// 7// "helloworld"아무런 피드백이 없다 아무런 경고도 주지 않았고 실수가 분명한 코드임에도 문제 없이 실행되었다 function showItems(arr){ arr.forEach((item)=> { console.log(item); });}showItems([1,2,3]);showItems(1,2,3); //실행 시점 에러 발생배열이 아니면 레퍼런스 에러 발생 javascript (동적언어) : 런타임에 타입 결정 / 오류 발견자바스크립트는 실행되는 시점 런타임에 .. 2026. 4. 11.
pandas - DataFrame column 선택하기 기본적으로 [ ]는 column을 추출컬럼 인덱스일 경우 인덱스의 리스트 사용 가능리스트를 전달할 경우 결과는 Dataframe하나의 컬럼명을 전달할 경우 결과는 Seriesdf = load_titanic() 하나의 컬럼 선택df['Survived'] # Series 복수의 컬럼 선택하기df[['Survived', 'Age', 'Name', 'Survived']] 2026. 4. 11.
점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기 로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다. 틀린 문제는 0점으로 계 산한다. 예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경 우에는 0으로 표시하였을 때, 점수 계산은 아래 표와 같이 계산되어, 총 점수는 1+1+2+3+1+2=10 점이다. .. 2026. 4. 11.
주사위 게임 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게 임이 있다. 규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된 다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이 6이므로 6*100으로 .. 2026. 4. 11.
뒤집은 소수 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력 한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 뒤집는 함수인 def reverse(x) 와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하 여 프로그래밍 한다 import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())n = int(input())arr = list(map(int,input().split()))def reverse(x): re = 0 while x >.. 2026. 4. 11.
pandas - DataFrame DataFrameSeries가 1차원이라면 DataFrame은 2차원으로 확대된 버전Excel spreadsheet 라고 생각2차원이기 때문에 인덱스가 row,column로 구성됨row는 각 개별 데이터를, column은 객별 속성을 의미Data Analysis, Machine Learning에서 data 변형을 위해 가장 많이 사용 read_csv()filepath = os.path.join(base_path, 'titanic.csv')# pd.read_csv() CSV 파일로부터 -> DataFrame 객체로 읽어오기df = pd.read_csv(filepath)# 함수로 만들어 놓기df = Nonedef load_titanic(): return pd.read_csv(filepath) head(),.. 2026. 4. 10.
소수(에라토스테네스 체) 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다. 제한시간은 1초입니다. import sys# sys.stdin=open("input.txt","rt")# n,m = map(int,input().split())n = int(input())# a = list(map(int,input().split()))cnt = 0arr = [0 for _ in range(n+1)]for i in range(2,n+1): if arr[i] == 0: cnt +=1 for j in range(i,n+1,i): arr[j] = 1.. 2026. 4. 10.
pandas - Series pandas : 데이터 분석 라이브러리행, 열 형태의 정형 데이터 객체를 다룸2차원 데이터엑셀 시트, RDB 의 테이블과 같은 형태 Seriespandas의 기본 객체중 하나numpy의 ndarray를 기반으로 인덱싱 기능이 추가된 1차원 배열을 나타냄(index * value의 형태)index를 지정하지 않을 시 기본적으로 ndarray와 같이 0-based인덱스 생성, 지정할 경우 명시적으로 지정된 index 사용 import pandas as pd Series 생성s1 =pd.Series([10,20,30]) 00 101 202 30# 왼쪽이 index, 오른쪽이 value(값), dtype : 데이터 타입# 데이터로만 생성하게 되면, index는 0-base 인덱스로 생성됨 .values / ... 2026. 4. 9.
자릿수의 합 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요. import syssys.stdin=open("input.txt","rt")# n,m = map(int,input().split())n = int(input())a = list(map(int,input().split()))def digit_sum(x): sum = 0 while x > 0: sum+=x%10 x= x//10 return summaxSum = -2174000000for x in a: tmp = digit_sum(x) .. 2026. 4. 9.
정다면체 두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확 률이 높은 숫자를 출력하는 프로그램을 작성하세요. 정답이 여러 개일 경우 오름차순으로 출력합니다. import sys# sys.stdin=open("input.txt","rt")n,m = map(int,input().split())# n = int(input())# a = list(map(int,input().split()))max = -2147000000res = [0 for _ in range(n+m)]for i in range(1, n+1): for j in range(1, m+1): res[i+j-1] += 1# max = max(res)for i in range(n+m): if .. 2026. 4. 9.
대표값 N명의 학생의 수학점수가 주어집니다. N명의 학생들의 평균(소수 첫째자리 반올림)을 구하고, N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하세 요. 평균과 가장 가까운 점수가 여러 개일 경우 먼저 점수가 높은 학생의 번호를 답으로 하고, 높 은 점수를 가진 학생이 여러 명일 경우 그 중 학생번호가 빠른 학생의 번호를 답으로 합니다. import sys# sys.stdin=open("input.txt","rt")# n,k = map(int,input().split())n = int(input())a = list(map(int,input().split()))avg = round(sum(a)/n)min =2147000000for idx, x in enumerate(a):.. 2026. 4. 9.
K번째 큰 수 현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려 고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로 큰 수를 출력 하는 프로그램을 작성하세요. 만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값 은 22입니다 import syssys.stdin=open("input.txt","rt")n,k = map(int,input().split())a = sorted(list(map(int,input().split())),reverse=True)arr = set()for i in range.. 2026. 4. 9.