본문 바로가기

전체 글140

[백준] 2217번 로프 [아이디어]어떤걸 고르면 최대중량일까?> 모든 로프를 쓸 필요는 없다했으니까 튼튼한 애들을 위주로 뽑으면 되지않을까 # 예시 (N=4일때)[10,15,20,25] 로프가 있다고 치자. 여기서 로프값이 큰 순서대로 먼저 정렬하면[25,20,15,10] 큰 것부터 하나씩 뽑아보자.1개 - [25]만 뽑았을때 가능한 최대중량은 25*1=25.2개 - [25,20] 뽑았을때 가능한 최대중량은 20*2=403개 - [25,20,15] 뽑았을때 가능한 최대중량은 15*3=454개 - [25,20,15,10] 뽑았을때 가능한 최대중량은 10*4=40위 예시에서 가능한 최대중량은 3개를 뽑았을때 45가 가장 크므로 답은 45가 된다. 왜?각각의 케이스에서 최대중량 = (뽑은애들 중 가장 작은값)*(뽑은개수) 이다.즉,.. 2024. 7. 1.
[백준] 1541번 잃어버린 괄호 [아이디어]어디에 괄호를 쳐야 값이 최소가 될까?결론 : - 를 최대한 많이 만들 수 있는곳, -를 최대한 많이 만들면 최소가 된다. # 예시 155-50+40-30 먼저 - 기준으로 식을 분리시키면   (최종연산에서 -해줄 것이므로 일단 나눠놓고 시작)>> 55, 50+40, 30 이때, 최소가 되는 값은 55-(50+40)-30 이다. 왜?그래야 - 개수가 제일 많아지니까.+도 -로 바꿀수있다면 최소가 되는것. 즉, +를 포함한 요소에 괄호를 쳐주면 됨. [Wrong] - 런타임에러(valueError)import sysinput = sys.stdin.readlinestring=input().rstrip()res=0li=string.split('-') #-기준으로 자른다numList=[int(li[0.. 2024. 7. 1.
[알고리즘] 그리디 알고리즘 그리디 알고리즘현재 상황에서 지금 당장 좋은 것만 고르는 방법그것이 결국 최적의 해가 되는지 정당성 분석이 중요함 # 문제 1 # 해결n을 k로 나눠 n을 작게 만드는게 포인트. 그래야 연산 시간이 적게 걸림. 시간복잡도가 logn 정도로 낮아진다는 점.import sysinput = sys.stdin.readlinen,k=map(int,input().split())cnt=0while True: target=(n//k)*k #target : k의 배수 중 n과 가장 가까운 수 (n보다 작은 수 중, n과 가까운수) cnt+=n-target #n이 target이 될때까지 1을 빼주는 과정을 횟수에 카운트 n=target # 이제 n은 k의 배수가 됨 n=n/.. 2024. 6. 29.
[바닐라 JS 챌린지] 랜덤 이미지 띄우기 - document.createElement(), appendChild 보호되어 있는 글 입니다. 2024. 6. 29.
[바닐라 JS 챌린지] 랜덤 명언 띄우기 - random(반올림), ceil(올림), floor(내림) 함수 보호되어 있는 글 입니다. 2024. 6. 28.
[프로그래머스/파이썬] 영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr [문제 규칙]1. 한글자 단어는 탈락. 단어의 길이는 2글자 이상이어야 함2. 바로 앞사람의 단어 마지막 문자랑 이어져야함. (끝말잇기 원칙과 같음)3. 이미 나왔던 단어 말하면 탈락. [Wrong]def solution(n, words): for i in range(len(words)): if len(words[i])==1: return [(i%n)+1,(i/.. 2024. 6. 28.