본문 바로가기

728x90

IT

(221)
[백준] 26005번 나뭇잎 학회 [Python] NxN개의 스위치 중에서 단 하나만 있는 정상 스위치는 상하좌우 중 하나의 스위치와 같이 한 번 누르면 작동한다. 어떠한 경우에도 정상 스위치를 구할 수 있는 최소한으로 누러야 하는 횟수를 구하는 문제 더보기 문제 기선이는 퀴즈를 좋아해서 알고리즘 학회에 들어가고자 하이아크에 방문하였다. 하지만 학회 문 앞에는 단 한 개의 전구, 여러 개의 스위치와 함께 다음과 같은 쪽지가 붙어있었다. 보이는 것과 같이 하나의 전구와 $N \times N$ 개의 스위치가 $N \times N$ 배열로 있습니다. 이 스위치 중 단 하나만 전구와 연결되어 있으며, 연결된 스위치를 누르면 전구가 깜빡입니다. 스위치에는 특수 장치가 적용되어 있어서 상하좌우로 인접한 두 개의 스위치를 동시에 눌러야만 합니다. 예를 들어 $N=3..
[백준] 28466번 볼링공 찾아주기 [Python] 볼링공의 무게와 보관할 사물함 번호가 입력 받아 저장하고, 볼링공의 무게가 주어지면 그 볼링공을 보관 중인 사물함 번호 출력하기 더보기 문제 동현이는 볼링을 사랑하는 훌륭한 프로그래머다. 오늘도 볼링을 치고 싶은 동현이는 자신의 볼링공 컬렉션을 보면서 어떤 볼링공을 가져갈지 고민에 빠졌다. 동현이는 매일의 컨디션에 따라 아주 미세한 무게까지 컨트롤하고 싶기 때문에 다양한 무게의 볼링공이 매우 많다. 볼링공을 관리하는 사물함에는 사물함 안에 들어 있는 볼링공들의 무게가 적혀 있고, 하나의 사물함에 여러 개의 볼링공이 들어갈 수 있다. 동현이는 오로지 볼링에만 집중하고 싶기 때문에 볼링공 관리는 여러분에게 맡기기로 했다. 동현이의 요청에 따라 볼링공을 관리해 보자! 요청은 다음과 같다. 1 x w: x번 사..
[프로그래머스] Lv.2 하노이의 탑 [Python] 하노이 탑에서 원판을 옮기는 과정을 2차원 배열에 [출발 기둥, 도착 기둥]을 처음부터 끝까지 기록해서 반환하는 문제 기둥은 3개$($1,2,3번 기둥이 있음$)$, 원판이 1번 기둥에 n개 주어지고, 3번 기둥으로 옮기는 과정 큰 원판은 밑에 작은 원판은 위에 존재해야하는 규칙이 있음$($큰 원판이 작은 원판 보다 위에 있을 수 없음$)$ 더보기 문제 설명 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입..
[백준] 3060번 욕심쟁이 돼지 [Python] - 등비수열 매일 N만큼의 사료로 돼지를 먹일 수 있다. N과 첫 날 돼지들이 먹은 양이 주어진다. 돼지들은 매일 전날 자신이 먹었던 양에 양 옆 돼지들과 맞은 편의 돼지가 먹었던 양까지 더해서 먹고 싶어한다. 돼지들의 요구를 들어줄 수 없게 되는 날을 구하는 문제 더보기 문제 유명한 농부 박현수는 돼지 6마리를 키우고 있다. 그는 하루에 한 번씩 돼지에게 맛있는 밥을 준다. 돼지는 원형 식탁에 앉아서 식사를 한다. 현수의 돼지들은 기억력이 뛰어나기 때문에 전 날 자신의 양쪽과 맞은편에 앉았던 돼지가 먹었던 양을 기억하고 있다. 또, 욕심도 많기 때문에, 그 만큼의 양을 추가하여 식사를 하기를 원한다. 예를 들어, 현수가 1번부터 6번까지 돼지에게 각각 3, 2, 7, 1, 5, 4만큼 밥을 주었다면, 2번 돼지는 ..
[백준] 14494번 다이나믹이 뭐예요? [Python] - 다이나믹 (1,1)에서 (n,m)까지 →, ↓, ↘의 세 방향만 사용해서 한 번에 한 칸씩 이동할 떄, 경우의 수 더보기 문제 안녕하세요~ 저는 오늘 다이나믹 프로그래밍$($동적 계획법$)$을 설명하기 위해 등장한 욱제예요! 다이나믹은 이름이 엄청 거창하지만 사실 이름에 비해 개념은 간단하답니다. 다이나믹의 기본 아이디어는 바로 이전에 계산한 값을 사용해서 $($= 이미 계산된 값을 사용해서, 어려운 말로 메모이제이션 한다고 해요$)$ 반복되는 똑같은 연산 횟수를 줄이는 거예요. 예를 들어서, 5번째 피보나치 수열을 구하는 F$($5$)$의 동작 과정을 살펴볼게요. 같은 함수가 불필요하게 많이 호출되는 것을 볼 수 있죠? F$($2$)$와 F$($3$)$을 미리 구해놓고 F$($4$)$를 구할 땐 미리 구해둔 F..
[백준] 3613번 Java vs C++ [Python] Java의 카멜 표기법과 C++의 스네이크 표기법 서로 바꿔서 출력하기 더보기 문제 Java 예찬론자 김동규와 C++ 옹호가 김동혁은 서로 어떤 프로그래밍 언어가 최고인지 몇 시간동안 토론을 하곤 했다. 동규는 Java가 명확하고 에러가 적은 프로그램을 만든다고 주장했고, 동혁이는 Java는 프로그램이 느리고, 긴 소스 코드를 갖는 점과 제네릭 배열의 인스턴스화의 무능력을 비웃었다. 또, 김동규와 김동혁은 변수 이름을 짓는 방식도 서로 달랐다. Java에서는 변수의 이름이 여러 단어로 이루어져있을 때, 다음과 같은 방법으로 변수명을 짓는다. 첫 단어는 소문자로 쓰고, 다음 단어부터는 첫 문자만 대문자로 쓴다. 또, 모든 단어는 붙여쓴다. 따라서 Java의 변수명은 javaIdentifier, longAn..
[백준] 1235번 학생 번호 [Python] 주어진 학생들을 구분할 수 있을 만큼 학번을 앞에서부터 삭제했을 때, 가장 짧은 길이의 학번 만들기 더보기 문제 이번에는 학생들을 더욱 효율적으로 관리하기 위해 학생마다 고유한 학생 번호를 부여하기로 하였다. 학생 번호는 0부터 9 사이의 숫자로 이루어진 문자열로, 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같다. 학생들의 번호를 부여해 놓고 보니, 김진영 조교는 어쩌면 번호가 지나치게 긴 것은 아닌가 싶은 생각이 들었다. 예를 들어 아래와 같은 7자리의 학생 번호를 보자. 이름번호 오민식 1212345 김형택 1212356 이동호 0033445 이처럼 학생 번호를 굳이 7자리로 하지 않고, 뒤에서 세 자리만을 추려서 남겨 놓아도 모든 학생들의 학생 번호를 서로 다르게 만들 수 있다. 이름..
데이터와 전처리 데이터 처리와 변환에 대한 이해는 효과적인 데이터 분석 및 모델링 작업을 위해 핵심적입니다. 데이터 파이프라인은 데이터의 생성, 수집, 가공, 저장, 시각화 등 일련의 과정을 의미합니다. 이러한 과정을 효율적으로 관리함으로써 데이터의 품질과 활용 가능성을 향상시킬 수 있습니다. 데이터 저장소의 선택은 데이터 처리 과정에 중요한 영향을 미칩니다. 데이터 웨어하우스는 기간 시스템의 데이터베이스에 축적된 데이터를 변환하고 관리하는 데이터베이스입니다. 데이터 레이크는 구조화되지 않은 대량의 데이터를 중앙 집중식으로 저장하고 처리하는데 사용됩니다. 이러한 저장소는 데이터 분석의 효율성과 확장성을 결정짓는 중요한 요소입니다. 데이터 분석 프로세스는 문제 정의, 데이터 수집, 데이터 전처리, 모델링, 해석 및 시각화..
[백준] 1213번 팰린드롬 만들기 [Python] 팰린드롬$($palindrome$)$: 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열 등 주어진 문자열로 팰린드롬 만들기 더보기 문제 임한수와 임문빈은 서로 사랑하는 사이이다. 임한수는 세상에서 팰린드롬인 문자열을 너무 좋아하기 때문에, 둘의 백일을 기념해서 임문빈은 팰린드롬을 선물해주려고 한다. 임문빈은 임한수의 영어 이름으로 팰린드롬을 만들려고 하는데, 임한수의 영어 이름의 알파벳 순서를 적절히 바꿔서 팰린드롬을 만들려고 한다. 임문빈을 도와 임한수의 영어 이름을 팰린드롬으로 바꾸는 프로그램을 작성하시오. 입력 첫째 줄에 임한수의 영어 이름이 있다. 알파벳 대문자로만 된 최대 50글자이다. 출력 첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hanso..
[백준] 14916번 거스름돈 [Python] 2원과 5원짜리로만 거스름돈 n원을 거슬러 주는데, 필요한 최소 동전의 개수 구하는 문제 더보기 문제 춘향이는 편의점 카운터에서 일한다. 손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오. 예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다. 입력 첫째 줄에 거스름돈 액수 n$($1 ≤ n ≤ 100,000$)$이 주어진다. 출력 거스름돈 동전의 ..
[NLP] 자연어 처리: 트랜스포머 [기초] 자연어 처리는 컴퓨터가 인간의 언어를 이해하고 생성하는 분야로, 다양한 기술과 모델이 사용됩니다. 이 글에서는 자연어 처리에서 주로 사용되는 접근법과 모델 중에서 Autoencoding, Autoregressive, 시퀀스 투 시퀀스 모델, 그리고 트랜스포머에 대해 다뤄보겠습니다. 1. Autoencoding vs. Autoregressive - Autoencoding: 입력 데이터를 압축하여 의미 있는 표현을 학습하는 방식입니다. 인코더와 디코더로 구성되며, 데이터의 특징을 추출하고 잡음 제거, 차원 축소 등에 활용됩니다. - Autoregressive: 시퀀스 데이터를 이전 타임스텝의 정보를 활용하여 다음 타임스텝을 예측하는 방법입니다. 주로 시퀀스 생성 작업에 활용되며, 번역이나 음성 합성에서 사용..
[통계] Day 7-2 데이터 분석: 다변량 분석 다변량 분석은 여러 개의 독립 변수와 종속 변수 간의 관계를 분석하는 통계적 방법으로, 주로 독립 변수들이 종속 변수에 미치는 영향을 이해하고 예측 모델을 개발하는 데 활용됩니다. 이는 데이터의 탐색과 시각화, 변수의 특성과 성질 파악, 데이터 전처리와 변수 선택, 예측 및 분류 등 다양한 목적으로 활용됩니다. 데이터의 다양한 정보를 제공하며 변수 간의 상관 관계를 파악하는 데 유용하며, 또한 데이터의 차원을 축소하여 복잡성을 줄이고 모델을 개선하는 데에도 활용됩니다. 다변량 분석은 주로 회귀 분석, 다변량 분산 분석, 요인 분석, 주성분 분석 등의 기법을 포함하며, 시각화 기법으로는 산점도 행렬, 병렬 좌표, 히트맵, 다차원 척도법 등을 활용하여 변수들 간의 관계를 시각적으로 이해하고 패턴을 발견할 수..