코테(19)
-
[프로그래머스] 크기가 작은 부분 문자열 Lv1
https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코딩 테스트 레벨2를 풀면서 느끼지만 난 아직 한참 모자라다.. 다시 문제푸는 재미를 느낄겸 레벨1로 회귀해서 풀었다. 문제 설명숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열..
2025.01.18 -
[프로그래머스] 귤 고르기 Lv2
https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 귤 고르기 문제로 아래는 내 풀이인데 44점을 맞고 틀렸다. 다시 시작하는 새 마음 새 뜻 치고 그렇게 좋지는 않은 결과이다. 그런데 어떡하겠나? 내가 못한건데. 인정할건 인정하고 그냥 넘어가자. 참고로 20분 안에 문제를 마무리 하지 못하면 틀린 걸로 취급하고 그냥 풀이 찾고 공부하기로 했다. 아무래도 일하면서 공부하려면 나도 최소한으로 하고 싶다는 마음때문일까? 이렇게 하지 않으면 유지가 불가능하다는 결론에 도달했다. 아무튼 아래는 내가..
2025.01.07 -
비슷한 단어 2607 - 실버 3 (백준, 문자열)
import sys input = sys.stdin.readline stack = [] ans = 0 for _ in range(int(input())): word = list(input()) word = word[:-1] word.sort() if len(stack) == 0: stack.append(word) elif stack[-1] != word: temp = [] for i in stack[-1]: if i in word: word.remove(i) else: temp.append(i) a = len(word) b = len(temp) if (a == 0 and b == 0) or (a==1 and b==0) or (b==1 and a == 0) or (a==1 and b==1): ans +=1..
2023.01.20 -
용돈 관리 6236 - 실버 2 (백준, 이진탐색)
import sys input = sys.stdin.readline N,M = map(int,input().split()) buys = [] for _ in range(N): buys.append(int(input())) s = min(buys) e = sum(buys) while s money: money = mid nums += 1 money -= i if nums > M or mid < max(buys): s = mid+1 else: e = mid-1 k = mid print(k) 문제가 이해가 안 되서 한참을 헤메다 결국 다른 분의 것을 참고했다. 쉽게 정리하자면 얻고자 하는 K는 인출하는 금액으로 입력되는 돈들을 계속 마이너스하는 것이다. 예시에 있는 값들을 보면 k가 500이라면 첫날 인출 한..
2023.01.20 -
나무 자르기 - 실버 2 (백준, 이분탐색)
import sys input = sys.stdin.readline N,M = map(int, input().split()) trees = list(map(int, input().split())) s = 1 e = max(trees) while s M: s = mid +1 elif ans == M: e = mid break else: e = mid -1 print(e) 이분 탐색 익숙해질때까지 풀어보자!!
2023.01.19 -
금고털이 - level2 (소프티어, 그리디)
import sys W, N = map(int, input().split()) List = [] for _ in range(N): M, P = map(int, input().split()) List.append([M,P]) List.sort(key=lambda x: x[1], reverse=True) ans = 0 for i in List: if i[0] = W: ans += i[1]*W break print(ans) 간단한 그리디 문제
2023.01.16