반응형

1.  문제

■ URL : https://www.acmicpc.net/problem/2839

 

2. 핵심요약

■ 문제유형 : 탐욕(Greedy) 알고리즘

 

3. 문제풀이 접근

먼저 큰 봉지(5kg)를 이용하여 설탕을 담는다.

남은 분량을 작은 봉지(3kg) 단위로 배분하여 정확히 떨어지는지(나머지가 0) 여부를 확인한다.

■ 작은 봉지(3kg) 단위로 배분하여 떨어지지 않으면(나머지가 0 아님) 큰 봉지(5kg)의 갯수를 하나씩 줄인다.

남은 분량이 작은 봉지(3kg) 단위로 배분하여 정확히 떨어지는면(나머지가 0) 봉지의 합이 최소값이 된다.

 

4. 파이썬 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
isTest = True
if isTest:
    f = open("./2839.txt"'r')
    N = int(f.readline())
else:
    N = int(input())
 
answer = -1
for i in range(int(N / 5), -1-1):
    remains = N - i * 5
 
    if remains % 3 == 0:
        answer = i + int(remains / 3)
        break
 
print(answer)
cs

 

 

5. JavaScript 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
let isTest = true
 
let fs = require('fs');
let input;
if (isTest) {
    input = fs.readFileSync('./2839.txt').toString().split('\n');
else {
    input = fs.readFileSync('/dev/stdin').toString().split('\n');
}
 
let N = input[0];
 
let answer = -1;
for(let i = parseInt(N / 5); i >= 0; i--) {
    let remains = N - i * 5;
 
    if (remains % 3 === 0) {
        answer = i + parseInt(remains / 3);
        break;
    }
}
 
 
console.log(answer);
cs

 

반응형

'알고리즘(코딩테스트)' 카테고리의 다른 글

[백준] 주유소  (0) 2024.10.05
[백준] 수들의 합  (0) 2024.10.05
[백준] 읽어버린 괄호  (0) 2024.10.04
[백준] ATM  (1) 2024.10.03
[백준] 동전 0  (0) 2024.10.03
반응형

1.  문제

■ URL : https://www.acmicpc.net/problem/1541

 

2. 핵심요약

첫째 줄에 식이 주어진다.

■ 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있다.

■ 가장 처음과 마지막 문자는 숫자이다. → 식의 가장 첫 부분은 양수로 시작한다.

■ 연속해서 두 개 이상의 연산자가 나타나지 않는다.

 

3. 문제풀이 접근

문제의 내용을 종합하면 아래와 같은 형태를 만들어야만 식의 결과가 최소값으로 나타난다.

 

4. 파이썬 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
isTest = True
if isTest:
    f = open("./1541.txt"'r')
    input = f.readline()
else:
    input = input()
 
q_tkn_arr = input.split('-')
 
answer = 0
for i in range(len(q_tkn_arr)):
    sub_sum = 0
    s_tkn_arr = map(int, q_tkn_arr[i].split('+'))
    for s_tkn in s_tkn_arr:
        sub_sum += s_tkn
 
    if len(q_tkn_arr) == 1 or i == 0:
        answer = sub_sum
    else:
        answer -= sub_sum
 
print(answer)
cs

 

5. JavaScript 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
let isTest = true
 
let fs = require('fs');
let input;
if (isTest) {
    input = fs.readFileSync('./1541.txt').toString().split('\n');
else {
    input = fs.readFileSync('/dev/stdin').toString().split('\n');
}
 
let q = input[0];
q_tkn_arr = q.split('-')
 
answer = 0
for (let i = 0; i < q_tkn_arr.length; i++) {
    let sub_sum = 0;
    s_tkn_arr = q_tkn_arr[i].split('+').map(Number)
    for (let j = 0; j < s_tkn_arr.length; j++) {
        sub_sum += s_tkn_arr[j];
    }
 
    if (q_tkn_arr.length === 1 || i === 0) {
        answer = sub_sum;
    } else {
        answer -= sub_sum;
    }
}
 
console.log(answer);
cs

 

반응형

'알고리즘(코딩테스트)' 카테고리의 다른 글

[백준] 주유소  (0) 2024.10.05
[백준] 수들의 합  (0) 2024.10.05
[백준] 설탕 배달  (0) 2024.10.04
[백준] ATM  (1) 2024.10.03
[백준] 동전 0  (0) 2024.10.03
반응형

1.  문제

■ URL : https://www.acmicpc.net/problem/11399

 

2. 핵심요약

■ 1번째 Row : 사람의 수 N(1 ≤ N ≤ 1,000)

2번째 Row : 각 사람이 돈을 인출하는데 걸리는 시간

1
2
5
3 1 4 3 2
cs

 

3. 문제풀이 접근

■ 문제유형 : 탐욕(Greedy) 알고리즘

최소 시간의 합을 구하기 위해서 점유시간이 낮은 사람부터 먼저 처리 되어야 한다.

 

4. 파이썬 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
isTest = True
if isTest:
    f = open("./11399.txt"'r')
    cnt = int(f.readline())
    occupy = list(map(int, f.readline().split()))
else:
    cnt = int(input())
    occupy = list(map(int, input().split()))
 
# 배열을 오름차순으로 정렬
occupy.sort()
 
sum = 0
answer = 0
for x in occupy:
    sum += x            # 각 사람이 (대기한 시간 + 돈을 인출하는데 걸리는 시간)
    answer += sum       # 각 사람이 (대기한 시간 + 돈을 인출하는데 걸리는 시간)의 누적합
 
print(answer)
cs

 

5. JavaScript 코딩

■ 배열.sort()와 배열.sort((a, b) => a - b)의 정렬 방식 차이점

    - 배열.sort() : ['3', '12', '215']인 경우, ['12', '215', '3']으로 정렬된다.

    - 배열.sort((a, b) => a - b) : ['3', '12', '215']인 경우, ['3', '12', '215']으로 정렬된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
let isTest = true
 
let fs = require('fs');
let input;
if (isTest) {
    input = fs.readFileSync('./11399.txt').toString().split('\n');
else {
    input = fs.readFileSync('/dev/stdin').toString().split('\n');
}
 
let cnt = Number(input[0]);         // 사람 수
let occupy = [];                    // 각 사람이 돈을 인출하는데 걸리는 시간
for (let i = 0; i < cnt; i++) {
    occupy.push(Number(input[1].split(' ')[i]));
}
 
// 배열을 오름차순으로 정렬
occupy.sort((a, b) => a - b);
//occupy.sort()   // 위의 것과 차이점 중요
 
let sum = 0;
let answer = 0;
for (let i = 0; i < occupy.length; i++) {
    sum += occupy[i];       // 각 사람이 (대기한 시간 + 돈을 인출하는데 걸리는 시간)
    answer += sum;          // 각 사람이 (대기한 시간 + 돈을 인출하는데 걸리는 시간)의 누적합
}
 
console.log(answer);
cs

 

 

반응형

'알고리즘(코딩테스트)' 카테고리의 다른 글

[백준] 주유소  (0) 2024.10.05
[백준] 수들의 합  (0) 2024.10.05
[백준] 설탕 배달  (0) 2024.10.04
[백준] 읽어버린 괄호  (0) 2024.10.04
[백준] 동전 0  (0) 2024.10.03
반응형

1.  문제

■ URL : https://www.acmicpc.net/problem/11047

 

2. 핵심요약

■ 1번째 Row, 1번째 Col : 동전의 갯수

■ 1번째 Row, 2번째 Col : 주어진 동전 가격의 합으로 만들어야할 합계 가격

■ 2번째 Row 부터 : 각 동전의 가격

1
2
3
4
5
6
7
8
9
10
11
10 4790
1
5
10
50
100
500
1000
5000
10000
50000
cs

 

 

3. 문제풀이 접근

■ 문제유형 : 탐욕(Greedy) 알고리즘

최소한의 동전 갯수만 사용하기 위해 동전 단가가 큰 것부터 써야 한다.

■ 몫 연산자와 나머지 연산자 문법을 알고 주어진 합계 가격으로부터 필요한 동전의 갯수(최소값)을 구한다.

    - 파이썬 연산자 문법 : 나눗셈의 몫(//), 나눗셈의 나머지(%)

    - 자바스크립트 연산자 문법 : 나눗셈의 몫(/), 나눗셈의 나머지(%)

 

4. 파이썬 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
isTest = True
if isTest:
    f = open("./11047.txt"'r')
    cnt, target = map(int, f.readline().split(' '))
else:
    cnt, target = map(int, input().split(' '))
 
arr = []
for i in range(1, cnt+1):
    if isTest:
        arr.append(int(f.readline()))
    else:
        arr.append(int(input()))
 
answer = 0
arr.reverse()
for item in arr:
    answer += target // item
    target = target % item
 
    if target == 0:
        break
 
print(answer)
 
cs

 

5. JavaScript 코딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
let isTest = true
 
let fs = require('fs');
let input;
if (isTest) {
    input = fs.readFileSync('./11047.txt').toString().split('\n');
else {
    input = fs.readFileSync('/dev/stdin').toString().split('\n');
}
 
let cnt = Number(input[0].split(' ')[0]);       // 동전의 갯수
let target = Number(input[0].split(' ')[1]);    // 목표값
 
arr = [];
for(let i = 1; i < cnt + 1; i++) {
    arr.push(Number(input[i]));
}
 
// 문제에서 동전의 가치는 이미 오름차순으로 주어짐.
answer = 0;
for(let i = arr.length - 1; i >= 0; i--) {
    answer += parseInt(target / arr[i]);
    target = target % arr[i];
 
    if (target === 0) {
        console.log(answer);
        return answer;
    }
}
cs

 

 

반응형

'알고리즘(코딩테스트)' 카테고리의 다른 글

[백준] 주유소  (0) 2024.10.05
[백준] 수들의 합  (0) 2024.10.05
[백준] 설탕 배달  (0) 2024.10.04
[백준] 읽어버린 괄호  (0) 2024.10.04
[백준] ATM  (1) 2024.10.03
반응형

1. Coding Assistants

    ① copilot

        - URL : https://github.com/features/copilot

        - 주요 서비스 : 코드 자동 완성, 코드 추천, 다양한 언어 지원.

        - 요금: 월 $10 또는 연간 $100 (개인 사용자 기준).

 

    ② Amazon Q Developer

        - URL : https://aws.amazon.com/ko/q/

 

생성형 AI 기반 도우미 - Amazon Q - AWS

Amazon Q는 Wiki, 인트라넷, Atlassian, Gmail, Microsoft Exchange, Salesforce, ServiceNow, Slack, Amazon Simple Storage Service(S3) 등 일반적으로 사용되는 40개 이상의 비즈니스 도구에 쉽고 안전하게 연결됩니다. 엔터프라

aws.amazon.com

 

        - 주요 서비스 : 자연어 기반 코드 작성, AWS 서비스와 통합

        - 요금: 사용량 기반 요금, 세부 사항은 AWS 가격 페이지 참조

 

    ③ codeium

        - URL : https://codeium.com/

 

Codeium · Free AI Code Completion & Chat

Codeium offers best in class AI code completion, search, and chat — all for free. It supports over 70+ languages and integrates with your favorite IDEs, with lightning fast speeds and state-of-the-art suggestion quality.

codeium.com

 

        - 주요 서비스 : 코드 완성, 코드 설명, 여러 언어 지원

        - 요금: https://codeium.com/pricing

2. Code Generation

    ① Claude

        - URL : https://claude.ai/login?returnTo=%2F%3F

 

Claude

Talk with Claude, an AI assistant from Anthropic

claude.ai

 

        - 주요 서비스 : 자연어 처리 기반 코드 생성, 다양한 언어 지원.

 

    ② Sourcegraph

        - URL : https://sourcegraph.com/

 

Sourcegraph | Code Intelligence Platform

Sourcegraph’s code intelligence platform makes it easy for devs to write, fix, and maintain code with Cody, the AI coding assistant, and Code Search.

sourcegraph.com

 

        - 주요 서비스 : 코드 검색, 코드 탐색 및 분석 도구

        - 요금: https://sourcegraph.com/pricing

 

Sourcegraph | Pricing

Pricing and plans for Sourcegraph Cody and Code Search. Get started with a free trial today.

sourcegraph.com

 

3. Image to Code 변환

    ① Builder.io

        - URL : https://www.builder.io/

 

Builder.io: Drag & Drop Headless CMS

Drag and drop with your components, right within your existing site or app. Build and optimize digital experiences for any tech stack, visually..

www.builder.io

 

        - 주요 서비스 : 시각적 사이트 빌더, 코드 변환 기능

        - 요금: https://www.builder.io/m/pricing

 

Pricing - Builder.io

Build, preview, and go live for free today. And as you expand, choose one of our scalable pricing plans to move faster and fuel sustainable growth

www.builder.io

 

 

    ② snyk

        - URL : https://snyk.io/

 

Developer security | Snyk

Enable developers to build securely from the start while giving security teams complete visibility and comprehensive controls.

snyk.io

 

        - 주요 서비스 : 보안 취약점 탐지 및 코드 변환.

        - 요금: https://snyk.io/plans/

 

Plans and pricing | For teams of all sizes | Snyk

Developer security solution from Snyk. Simple, flexible pricing for teams of all sizes. Start a free trial today.

snyk.io

 

    ③ pieces.app

        - URL : https://pieces.app/

 

Pieces for Developers - Your Workflow Copilot

Integrate your toolchain, efficiently capture, enrich, and reuse materials. Enhance collaboration with the assistance of an on-device copilot.

pieces.app

 

        - 주요 서비스 : 코드 스니펫 저장 및 공유, 이미지에서 코드 변환.

 

    ④ otter.ai

        - URL : https://otter.ai/

 

Otter.ai - AI Meeting Note Taker & Real-time AI Transcription

Otter.ai uses an AI Meeting Assistant to transcribe meetings in real time, record audio, capture slides, extract action items, and generate an AI meeting summary.

otter.ai

 

        - 주요 서비스 : 음성 텍스트 변환, 회의록 작성, 이미지에서 코드 생성.

        - 요금: 기본 무료, 프로 플랜 월 $8.33.

 

4. IDE Plugin

    ① cursor

        - URL : https://www.cursor.com/

 

Cursor

The AI Code Editor

www.cursor.com

 

        - 주요 서비스 : AI 기반 코드 작성 및 자동 완성.

        - 요금: https://www.cursor.com/pricing

 

Pricing | Cursor - The AI-first Code Editor

500 fast premium requests per month Unlimited slow premium requests

www.cursor.com

 

 

 

반응형
반응형

1. 시험환경

    · AWS CodeCommit

 

2. 목적

    · Git PUsh 명령어 수행시, 권한 에러가 발생할 경우 조치 방법을 알아보자.

 

3. 적용

    ① git  remote  set-url 명령어를 이용하여 레포지토리 URL을 변경한다.

        - $ git remote set-url origin https://[user-name]@github.com/<user-name>/[repository-name].git

 

    ② Git push 명령어를 실행한다.

        - popup 창에서 CodeCommit Credencial ID/Password를 입력한다.

 

    ③ git push 명령어를 실행한다.

        - $ git push -u origin main

반응형
반응형

1. 시험환경

    · AWS CodeCommit (GitLab)

 

2. 목적

    · 프로젝트 진행 중 형상관리 필요성에 의해 CodeCommit (GitLab)에 등록하는 절차 및 명령어를 알아보자.

 

3. 적용

    ① 로컬 Git 저장소를 초기화한다.

        - 로컬 프로젝트 디렉토리로 이동한 후 Git 저장소를 초기화 한다.

1
2
3
4
cd /path/to/your/project
git init
git add .
git commit -"Initial commit"
cs

 

 

    ② CodeCommit 리포지토리 URL  복사

        -  AWS 콘솔에서 생성한 CodeCommit 리포지토리의 HTTPS URL을 복사한다.

 

    ③ 로컬 저장소에 리모트 리포지토리를 추가한다.

        - 복사한 URL을 이용하여 저장소에 리모트 리포지토리를 추가한다.

1
git remote add origin https://git-codecommit.<region>.amazonaws.com/v1/repos/<리포지토리-이름>
cs

 

    ④ 로컬 프로젝트를 CodeCommit에 푸시한다.

        - AWS Command 인증이 완료된 경우, git push 수행시 나타나는 팝업창은 무시(닫기) 한다.

        - AWS Command 인증이 완료되지 않은 경우, CodeCommit 권한(ID/PW)을 입력해야 한다.

1
git push -u origin main
cs

 

반응형
반응형

1. 시험환경

    · 파이썬

    · yotube_transcript_api 라이브러리

 

2. 목적

    · 파이썬을 이용하여 YouTube 특정 동영상의 자막을 가져오는 코드를 작성한다.

 

3. 적용

    ① ID로 식별된 특정 유튜브의 자막을 추출하여 파일로 저장하는 프로그램이다.

1
2
3
4
5
6
7
8
9
from youtube_transcript_api import YouTubeTranscriptApi
 
video_id="유튜브_동영상_ID_입력"
 
srt = YouTubeTranscriptApi.get_transcript(video_id, languages=['ko'])
 
with open("script.txt""w", encoding="utf-8"as f:
    for i in srt:
        f.write("{}\n".format(i["text"]))
cs

 

 

    ② 유튜브 동영상 ID는 URL에서 "v"에 매핑된 값이다.

반응형

+ Recent posts