💡프로그래머스 문자열 나누기 - 내가 생각한 아이디어 우선, 분리가 다 될 때까지 무한 반복이기에 while문이 필요. s의 글자들을 살펴보면서(for문 사용), (첫 글자의 개수 - 그 외의 개수)가 0이 되는 순간이 "두 횟수가 같아지는 순간"이다. 만약 s의 글자들을 다 살펴봤는데도, 0이 되는 순간이 없었다면 더 이상 분리가 불가능하기에 종료하면 된다. 위 케이스를 위해, for문이 break 없이 정상적으로 끝났을 때만 진입할 수 있는 for-else 구문을 이용할 것이다. 👩🏻💻 작성한 코드 def solution(s): # 분해된 문자열의 개수 answer = 0 # 문자열이 다 분해되기 전 동안에, while s: # (첫글자 개수 - 그외의 개수)를 나타내는 변수. cnt = 1 # 두..
💡프로그래머스 가장 가까운 글자 - 내가 생각한 아이디어 한 글자씩 돌아가면서(for문), 이전에 나왔는지를 우선 확인해야한다. 이전에 나왔다면, 얼마나 가까이 있는지를 알아내야한다. 이를 위해서 이전까지의 리스트를 뒤집고, 몇번째에 있는지 알아내야한다. 앞의 리스트를 뒤집기 위해서는 "lst[::-1]"를 사용하면 된다. 뒤집어진 리스트에서, 동일한 글자가 몇번째에 있는지 알아내기 위해서 "lst.index(찾고싶은글자)"를 하면 된다. 그리고 answer list에 (찾아진 인덱스 + 1)을 추가해야한다. 인덱스는 0번부터 시작하기 때문이다! 이전에 나온적 없다면, 그냥 answer list에 -1을 추가하면 된다. 👩🏻💻 작성한 코드 def solution(s): # 이전까지의 글자들을 담기 위한..

💡 문제 해결 아이디어 주식이 계속 오를 경우는 따로 저장해두고, 주식이 떨어진 경우에는 저장된 주식들에 대해서 하락까지 걸린 시간을 계산해주고, 저장한 stack에서 빼준다. 자 이제 이 쉬워보이는 내용을 어떻게 구현하는지 보러 가보자! 코드 보기 전 사전지식! Tip1: 리스트에서 lst.pop()를 하면 맨 끝의 요소를 꺼낼 수 있다. Tip2: if문 등에서 뭔가 하나라도 들어있는 리스트는 True, 빈 리스트는 False로 판단한다. 아래 예제들이 이해와 풀이에 도움이 되었으면 좋겠다!! 💻 작성된 코드 def solution(prices): answer = [i for i in range(len(prices))] # 전부 하락하지 않을 경우를 기본으로 세팅. answer.reverse() # ..

💡 문제 해결 아이디어 머릿속으로 경우를 잘 나누어야한다! 트럭이 다리에 올라갈 때 2가지 경우가 있다. 현재 다리위의 트럭 중량이 넉넉해서 바로 들어가는 경우. 넉넉하지 않아서 트럭이 충분히 빠진 후 들어가는 경우. 자 이제 이 쉬워보이는 내용을 어떻게 구현하는지 보러 가보자! 코드 보기 전 사전지식! Tip1: 리스트에서 lst.pop(0)를 하면 맨 앞의 요소를 꺼낼 수 있다. Tip2: if문 등에서 빈 리스트는 False, 뭔가 하나라도 들어있는 리스트는 True로 판단한다. 아래 예제들이 이해와 풀이에 도움이 되었으면 좋겠다!! 💻 작성된 코드 def solution(bridge_length, weight, truck_weights): # 시간 기록 time = 0 # 다리 위의 [트럭무게, ..

💡 문제 해결 아이디어 간단한 듯 하지만, 놓치기 쉬운 부분들이 많은 문제 같다! 😂 팁1: 리스트에서 lst.pop(0)를 하면 맨 앞의 요소를 꺼낼 수 있다. 팁2: if문 등에서 빈 리스트는 False, 뭔가 하나라도 들어있는 리스트는 True로 판단한다. 팁3: zip을 이용하면 길이가 같은 리스트나 튜플 등을 묶을 수 있다. 아래 예제들이 이해와 풀이에 도움이 되었으면 좋겠다!! 풀이 코드는 내리면 있습니다 :) 💻 작성된 코드 def solution(priorities, location): # 우선순위와 인덱스 묶어서 저장 lst = [[p, i] for p, i in zip(priorities, range(len(priorities)))] # 몇번째로 인쇄되는지 count. cnt = 1 #..

💡 문제 해결 아이디어 stack에 재료들을 하나씩 추가하면서, 맨 끝 4개가 햄버거가 될 수 있는지 확인하는 방식이다. 아니 왜 시간 초과가 뜨는거지.. 잘짠줄 알았는데 😭 분명히 우매한 내가 코드를 비효율적으로 짠 것이겠지... 우리 Chat쓰앵님께 물어보자. 🤖 ChatGPT 쓰앵님의 답변 역시나 쓰앵님은 알고.... 계신줄 알았는데??? 저번 포스팅에서 말했듯이, ChatGPT도 틀릴 때가 있다. 설명이 부족했다거나, 지나치게 트렌드한 주제라거나, 그냥 틀린다거나... 등등 아주 경우가 많다. ChatGPT로 코딩 잘하는 8가지 방법. 출처 - https://typefully.com/svpino/11-ways-you-can-use-chatgpt-to-write-code-YnkOEF4 11 ways..

💡 문제 해결 아이디어 "("가 나오면 저장해둔다. ")"이 나왔을 때, 저장해둔 "("이 없으면 올바르지 않은 괄호! 바로 return False. ")"이 나왔을 때, 저장해둔 "("이 있으면, 저장해둔 "("를 제거한다. (왜냐면 "()" 한쌍이 완성되었기에.) 💻 작성된 코드 def solution(s): # 저장할 stack. stack = [] # 모든 괄호들에 대해서, for text in s if text == ')': # 저장해둔 "("가 없는 경우, 바로 return False if not stack: return False # 아니라면, 저장해둔 가장 최근 "("을 제거. stack.pop() else: # "("는 리스트 맨 끝에 저장. stack.append(text) # 짝이 다..

💡 문제 해결 아이디어 네모들의 테두리는 1로, 네모들의 내부는 0으로 채우면 되지않을까??? 🛠️ 피드백 아이디어 위의 사진 중 우측을 보면 문제가 있다. 빨간색부분이 우리가 의도한 테두리이나, 알고리즘은 주황색에서 어느 쪽이 의도한 테두리인지를 모른다. 그럼 어떡하지...? 한 칸 띄우자! 맵을 두배로 만들어서! 💻 작성된 코드 import numpy as np def solution(rectangle, characterX, characterY, itemX, itemY): # 매트릭스를 0으로 초기화 (50의 2배인 100+1로) matrix = np.zeros((101, 101)) # 사각형들을 10001로 채운다 (가능한 최대거리 + 1) for x1, y1, x2, y2 in rectangle:..
- Total
- Today
- Yesterday
- heapq
- 디펜스
- BFS
- 연습문제
- 프로그래머스 파이썬
- ChatGPT
- 프로그래머스 햄버거 만들기
- Attend and Excite
- OpenAI
- heap
- 알고리즘
- 프로그래머스 연속된수의합
- 파이썬
- 가장 가까운 글자 파이썬
- 코테
- leetcode
- 큐
- 그리디
- Low Manifold Theory
- 프로그래머스 문자열 나누기
- Stable Diffusion
- 프로그래머스 가장 가까운 글자
- python
- 코딩테스트
- 인공지능
- 스테이블디퓨전
- 문자열 나누기 파이썬
- 프로그래머스 아이템줍기
- stablediffusion
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |