본문 바로가기

Study28

[알고리즘] 단어 정렬 - 정렬 문제 링크 단어 정렬 : https://www.acmicpc.net/problem/1181  문제탐색기본 원리 탐색주어진 문제는 N개의 알파벳을 특정 조건에 따라 정렬하는 것입니다.조건은 다음과 같습니다:길이가 짧은 순서로 정렬길이가 같다면 사전순으로 정렬또한, 중복된 단어는 하나만 남기고 제거해야 합니다.정렬 기준이 길이와 사전순 두 가지로 명확히 나뉘므로,각 단어를 [길이, 단어] 형태로 묶은 뒤 Python의 sorted 함수 기본값을 이용하면 해결할 수 있습니다.단, 중복 제거를 위한 추가 작업이 필요하므로 이를 고려해 풀이를 설계해야 합니다.  시간복잡도와 알고리즘 시간 제한: 2초Python에서 약 2억 번의 연산이 가능하다고 가정합니다.단어 수: 최대 20,000개시간 복잡도가 O(n²)인 .. 2025. 1. 8.
[알고리즘] 나이순 정렬 - 정렬 문제 링크나이순 정렬 : https://www.acmicpc.net/problem/10814  문제탐색기본 원리 탐색이 문제는 정수를 기준으로 오름차순 정렬을 수행하는 문제입니다.정렬 시 아래 두 가지 조건을 충족해야 합니다:같은 나이일 경우 입력받은 순서를 유지해야 합니다. 나이와 이름이 세트로 엮여 있는 구조를 처리해야 합니다. 시간복잡도와 알고리즘시간 제한: 3초3초=> 약 3억 번의 연산을 기준으로 합니다.회원 수 : 최대 100,000이 경우 시간 복잡도가 O(n²) 인 알고리즘은 약 100억 회 이상의 연산이 필요하므로 불가능합니다. 파이썬의 sorted 함수는 최악의 경우에도  O(n log n) 복잡도를 가지므로 약 500,000회 가 예상됩니다.=> python의 sorted함수를 사용하.. 2025. 1. 8.
[알고리즘] 일곱 난쟁이 - 정렬 문제탐색 기본 원리 탐색 총합은 무조건 100을 초과합니다.따라서, 총합에서 100을 뺀 값을 계산합니다.이 값은 난쟁이가 아닌 두 명의 키의 합이 됩니다.즉, 난쟁이들 중 두 명의 키의 합이 (총합 - 100)과 같은 경우를 찾아야 합니다. 시간복잡도와 알고리즘  시간 복잡도를 최소화하기 위해 (총합 - 100)보다 큰 수는 제외합니다.남은 수를 오름차순 정렬합니다.처음부터 순서대로 이전 숫자와 더하면서 (총합 - 100)을 초과하는지 확인합니다.즉, x번째 숫자 + (x-1)번째 숫자의 합을 계산합니다.(총합 - 100)보다 커지면, 해당 숫자 이전 값들로 조합을 시도합니다.만약 찾지 못하면, 다음 숫자로 넘어가 반복합니다.  => 생각해보니 입력값의 길이가 9로 고정되어 있고, 완전탐색으로도 숫자 .. 2025. 1. 6.
[모델링] N-gram 자연어 처리 예제 범용적으로 사용가능한 N-gram 과 딥러닝 모델을 활용한 자연어 처리 예제를 소개합니다. 먼저 필요한 라이브러리를 import해 줍니다. pandas, tensorflow, mecab 등 자연어처리에 필요한 라이브러리를 import 합니다.## import sklearnimport pandas as pdimport matplotlib.font_manager as fmimport matplotlib.pyplot as pltimport tensorflow as tfimport nltkfrom sklearn.linear_model import SGDClassifierfrom konlpy.tag import Mecabfrom sklearn.metrics import accuracy_score,f1_score,.. 2024. 9. 5.
[빅데이터 분석기사]빅데이터 분석기사 필기/실기 깨알 팁 빅데이터 분석기사는 아직 나온지 2년도 채 안된 따끈따끈한 국가기술자격증이다. 특히 에이블스쿨을 수료했거나 하고있는 중 이라면 더욱이 좋은 자격증이라 할 수 있는데, 실제로 빅데이터분석기사 필기/실기 내용과 에이블스쿨의 교육내용이 많이 겹치기 때문 자격증에 대한 자세한 설명은 아래 Kdata 홈페이지에 있다. https://www.dataq.or.kr/www/sub/a_07.do 데이터자격시험 대용량의 데이터 집합으로부터 유용한 정보를 찾고 결과를 예측하기 위해 목적에 따라 분석기술과 방법론을 기반으로 정형/비정형 대용량 데이터를 구축, 탐색, 분석하고 시각화를 수행하는 업 www.dataq.or.kr 참고로 빅데이터 분석기사는 유일하게 자격증이 실물이없이 종이로 되있다..!(사실 좀 맘에안듬) 나는 2.. 2022. 12. 12.
[git 사용법] 4.add, commit, push git저장소(github)에 연결이 성공적으로 되었을 경우 이제 commit을 통해 프로젝트의 버전 관리를 할 수 있습니다. 기본적으로 파일을 수정,생성 한 후 add, commit, push 세 과정을 거치면 github에 변경내용을 저장 할 수 있습니다. 물론 잔디도 심어집니다. 먼저 visual code 에서 프로젝트 폴더를 열으신다음 프로젝트를 수정합니다 (저는 임시로 아무파일이나 생성) 터미널->git bash 클릭합니다. 그런다음 git bash 창에 다음 명령어 세줄을 입력하시면 간단하게 github에 모든 변경사항을 업로드 할 수 있습니다. git add . ( 현업에서는 보안상 git add .을 사용하지 않고 파일을 하나씩 지정해 줍니다) git commit -m "버전이름" git p.. 2022. 12. 2.
[git 사용법] 3.visual studio code에서 git사용하기 (기존 프로젝트 참가#clone) git을 사용하실때 이미 만들어져있는 git hub 레파지토리에 참가하는 경우가 많습니다. 그런 경우에는 직접 만들때와 다르게 clone명령어를 사용하여 간단히 연동할수 있습니다. 만약 그게아니라 개인으로 새로운 github를 사용하실 때는 https://decomand.tistory.com/12 를 참고해 주세요 먼저 이미 있는 프로젝트를 가져올 폴더를 하나 만들어 줍니다. (참고로 해당폴더에 프로젝트파일들이 들어오는게 아니라 폴더 통째로 들어오게 됩니다.) 다음 visual studio code를 실행한 후 만든 폴더를 열어줍니다. 상단바에서 터미널을 누른후 새 터미널을 열어줍니다. 터미널이 잘 열렸으면 터미널의 오른쪽 위 화살표를 눌러 Git Bash를 눌러 줍니다. Git bash가 안보이시면 G.. 2022. 12. 2.
[git 사용법] 3.visual studio code에서 git사용하기 (새로운 프로젝트) visual studio code 에서 git을 사용하실때 새로운 프로젝트를 생성하고 git저장소에 연결하는 방법을 알아보려 합니다. 만약 이미 만들어져 있는 프로젝트에 참여하실 경우 [git 사용법] 3.visual studio code에서 git사용하기 (기존 프로젝트 참가) 게시물을 참고해 주세요 먼저 다음과 같이 프로젝트를 생성할 폴더를 하나 만듭니다. 다음 visual studio code를 실행한 후 만든 폴더를 열어줍니다. 상단바에서 터미널을 누른후 새 터미널을 열어줍니다. 터미널이 잘 열렸으면 터미널의 오른쪽 위 화살표를 눌러 Git Bash를 눌러 줍니다. Git bash가 안보이시면 Git이 설치가 재대로 안되었을 수 있습니다. git 설치는 https://decomand.tistory.. 2022. 12. 2.