본문 바로가기

구름톤

(9)
[구름톤 챌린지 - 9oormthon Challenge] Day 13 발전기 2 - Python 파이썬 풀이 구름톤 챌린지 13일차 - 발전기 2 📜 문제 ✏️ 입력 ✏️ 출력 💡 풀이 그림으로 조금 더 쉽게 접근해봤다. 가장 많은 단지를 보유한 건물의 유형을 찾아야 하기 때문에, 건물의 개수도 세주고 temp와 cnt를 비교해서 가장 많은 단지가 나온 건물 유형을 찾도록 했다. N, K = map(int, input().split()) town = [list(map(int, input().split())) for _ in range(N)] dy = [-1, 1, 0, 0] dx = [0, 0, -1, 1] def dfs(i, j): stack = [(i, j)] #건물의 유형을 미리 저장 building_type = town[i][j] cnt = 0 while stack: y, x = stack.pop() i..
[구름톤 챌린지 - 9oormthon Challenge] Day 8 통증 - Python 파이썬 풀이 구름톤 챌린지 8일차 - 통증 📜 문제 ✏️ 입력 ✏️ 출력 💡 풀이 처음에는 조건문에서 N의 범위를 따져 1일 경우, 7보다 작을 경우, 14보다 작을 경우로 계산을 했다. 오답이였다. 내가 놓친 조건들을 다시 찾아 다시 제출을 하니 정답이였다. N의 범위를 따져 조건문을 작성하되, 1일 경우에 이중조건문으로 다시 계산을 반복하게 했다. N = int(input()) res = 0 if N < 7 : res += N elif N < 14 : res += N - 6 else : res += N//14 N %= 14 if N < 7 : res += N else : res += N - 6 print(res) 문제 출처 : https://level.goorm.io/exam/195690/%ED%86%B5%EC%..
[구름톤 챌린지 - 9oormthon Challenge] Day 7 구름 찾기 깃발 - Python 파이썬 풀이 구름톤 챌린지 7일차 - 구름 찾기 깃발 📜 문제 ✏️ 입력 ✏️ 출력 💡 풀이 행렬 값이 0일때 인접한 8칸 중에서 구름이 K개 있는 칸의 개수를 구하는 문제이다. 모든 칸을 확인하면서 비어있는 경우에 개수를 세도록 하였다. n, k = map(int, input().split()) mat = [input().split() for i in range(n)] dy, dx = [-1, -1, -1, 0, 0, 1, 1, 1], [-1, 0, 1, -1, 1, -1, 0, 1] for i in range(n): for j in range(n): if mat[i][j] == '0': flag = 0 for a in range(8): y, x = i + dy[a], j + dx[a] if y ..
[구름톤 챌린지 - 9oormthon Challenge] Day 6 문자열 나누기 - Python 파이썬 풀이 구름톤 챌린지 6일차 - 문자열 나누기 📜 문제 ✏️ 입력 ✏️ 출력 💡 풀이 지난주 문제들에 비해 조금 난이도가 있었던 것 같다. 문제 공개 당일까지 풀지는 못하고 다음날 오전에 풀게되었다. 문자열을 가능한 조합으로 나누고, 그 조합들에서 최대를 찾아야한다. 나는 문자열을 가능한 조합으로 나누는 함수 search를 만들었다. 인자값으로 들어오는 start는 문자열 조합의 시작을 뜻하고 cnt는 남은 문자열을 몇 부분으로 나눌 것인지를 넘겨주도록 했다. global 변수 set을 사용해서 저장하고 중복을 허용하지 않도록 했다. cal 함수에서는 문자열 조합들에서 최대값을 계산하도록 했다. start와 cnt는 search 함수와 똑같고, P는 문자열을 임시로 저장하는 배열이다. 이후 main 에서는 문자..
[구름톤 챌린지 - 9oormthon Challenge] Day 5 이진수 정렬 구름톤 챌린지 5일차 - 이진수 정렬 📜 문제 ✏️ 입력 ✏️ 출력 💡 풀이 10진수를 2진수로 변환하는 방법은 bin()을 사용한다. 반대로 2진수를 10진수로 변환하려면 int()를 사용한다. 먼저, numlist안에 있는 10진수들을 2진수로 변환하고, 여기서 1의 개수를 세기 위해 bin()과 count를 사용했다. 1의 개수가 같을 경우도 따져야 하기 때문에, bin_num에는 1의 개수와 10진수를 같이 추가해줬다. 내림차순으로 정렬을 하면서 K번째 10진수를 찾기 위해 index K-1의 1에서 출력을했다. #10진수를 2진수로 변경 -> bin() 사용 #1의 개수 : count() N, K = map(int, input().split()) numlist = list(map(int, inp..
[구름톤 챌린지 - 9oormthon Challenge] Day 4 완벽한 햄버거 구름톤 챌린지 4일차 - 완벽한 햄버거 📜 문제 ✏️ 입력 ✏️ 출력 💡 풀이 제일 큰 수를 기준으로 왼쪽으로 내림차순, 오른쪽으로 내림차순이여야 완벽한 햄버거가 된다. 만약 어느 한 쪽으로라도 내림차순이 되지 않는다면 0을 반환하도록 하였다. 내가 찾은 방법은, 맛의 정도 입력 list에서 최대값 max_flavor를 찾고, 최대값이 있는 index를 찾아 max_idx로 했다. 그리고 max_idx를 기준으로 오른쪽과 왼쪽을 나눠 내림차순을 따지도록 하였다. N = int(input()) burger= list(map(int, input().split())) res = sum(burger) max_flavor = max(burger) max_idx = burger.index(max_flavor) fo..

728x90