Algorithm/Problem Solving

구름톤 챌린지 2주차 학습 일기 (2) 폭탄 구현하기 (2) :: 난이도 ⭐️⭐️ 폭탄 구현하기 (2) - 구름LEVEL 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제에서는 폭탄을 어디에 떨어뜨릴지 좌표값이 주어지고, 해당 좌표 및 상하좌우로 인접한 칸의 폭탄 값이 달라진다. 지뢰찾기와는 다르게 해당 좌표도 체크해줘야 한다. 또한 좌표에 해당하는 값이 0인지 @인지 #인지에 따라 폭탄 값의 변화에 차이가 있으므로 원래의 배열 자체를 수정하면 안 된다. 따라서 1차로 원래의 배열과 폭탄 좌표를 따로 두었다. board = [input().split() for _ in range(n)] // 원래 폭탄 값 저장하는 배열 result = ..
구름톤 챌린지 2주차 학습 일기 (1) 벌써 2주차도 반절이나 지나왔다. 매일 문제가 열릴 때마다 오늘 건 어려우려나 쉬우려나 긴장 되는 마음도 있고, 무엇보다 어디에도 풀이가 올라와있지 않기에 처음부터 끝까지 혼자 풀어내야 한다는 점이 구름톤 챌린지의 장점인 것 같다. 꼭 20문제를 모두 풀어내는 데에 성공할 수 있었으면 좋겠다! 이제 세 문제에 대한 풀이를 적어보겠다. 문자열 나누기 | 난이도 : ⭐️⭐️ 1. 문자열을 세 개의 부분문자열로 나눈다. 2. 나눈 부분 문자열을 중복 제거하고 사전순으로 정렬한 결과를 P라고 한다. 이때, 나눈 문자열이 P에서 등장하는 순서가 곧 해당 부분 문자열의 점수가 된다. 3. 부분 문자열의 최대 점수를 구한다. 예를 들어, abcd라는 문자열을 3개의 부분문자열로..
구름톤 챌린지 1주 차 학습 일기(2) 내 구름이가 그새 성장했다. 이제 노트북도 하나 들고 있다...오 진심 개발자같아ㅠ 오늘은 두 문제를 포스팅 할 것이다. 이제 별 두 개로 올라서 푸는 재미가 있다. ✔️ 완벽한 햄버거 만들기 https://level.goorm.io/exam/195686/%EC%99%84%EB%B2%BD%ED%95%9C-%ED%96%84%EB%B2%84%EA%B1%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 이 문제의 핵심은 최댓값을 기준으로 위, 아래로 갈수록 수가 감소하거나 같아야 한다는 것이다. 즉, 정렬 문제다. 파이썬의 sort() 함수는..
📌 구름톤 챌린지란? 구름톤 챌린지는 매일 오전 10시에 열리는 문제들을 하나씩 풀어나가는 챌린지다. 작년에 알고리즘 먼데이 챌린지에 참가했었는데 그게 구름톤 챌린지로 바뀐 거라고 함!! 문제를 풀 때마다 미션 블록을 받을 수 있고, 미션 블록을 받으면 내 구름이가 예쁘게(?) 옷을 입기 시작한다. 나는 이번 포스팅에서 1-3일 차 문제를 리뷰해보려 한다. 🔖 1일차 문제 : 운동 중독 플레이어 https://level.goorm.io/exam/195683/%EC%9A%B4%EB%8F%99-%EC%A4%91%EB%8F%85-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goor..
문제 절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다. 배열에 정수 x (x ≠ 0)를 넣는다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 정수는 -231보다 크고, 231보다 작다. 출력 입력에서 0이 주어진 회수..
문제 문제 이해 이차원 리스트 안에 들어있는 각 리스트의 합 중 가장 큰 것을 리턴해주면 되는 문제 내 풀이 for문 돌면서 max 값을 갱신해 주는 방법 class Solution: def maximumWealth(self, accounts: List[List[int]]) -> int: max = 0 for l in accounts: if max int: return max([sum(acc) for acc in accounts]) list comprehension을 이용해 각 ..
문제 이해 'aabbccaa'가 있으면 aa/bb/cc/aa 이렇게 같은 문자끼리 네등분 해라~ 이소리! 즉, 앞뒤문자가 같은지 체크해주면 되는 문제다. 내 코드 N = int(input()) s = input() start = 0# start index 변수를 따로 둠 res = 1# 처음 문자는 한 그룹으로 치므로 1로 초기화 for i in range(N): if s[i] != s[start]:# start index의 값과 현재 값이 다르면 start = i# start index 값을 현재 값으로 바꾸어주고 res += 1# 결과값에 1 더함 print(res) 정답 코드 import sys input = sys.stdin.readline n = int(input()) arr = input() ..
📌 문제 📌 입력 📌 출력 📌 예시 주절주절 이 문제는 에라토스테네스의 체를 안다면 정말 간단하고 쉽게 풀 수 있는 문제다. 하지만 나는 문제를 잘 읽지 않고 무슨 근자감인지 '헉!! 문제 오류인듯!!' 이러면서 풀다가 틀렸다 ㅎㅎ 🙄 부끄렁 이게 키포인트다. 인덱스의 값이 소수인 걸 찾아야 되는 거였어.. 교훈!! 요구사항을 명확하게 정리하는 습관을 들여야 한다. 📌 풀이 먼저, prime(n) 함수를 선언해준다. 이 함수는 에라토스테네스의 체를 이용해 n까지의 수 중 소수인 것을 return해주는 함수이다. import sys input = sys.stdin.readline def prime(n): check = [True] * (n + 1) m = int(n ** .5) for i in range(..
정쫀쪼
'Algorithm/Problem Solving' 카테고리의 글 목록 (2 Page)