이 문제는 쉬운듯했는데 내가 못풀어서그런지 엄청 오래걸렸다. 스도쿠를 잘못 이해해서 힘들었다..ㅠㅠ 가로 세로 모두 다 1부터 9까지 있는지 확인한다. 만약 한 열이나 행이라도 1부터 9까지 존재하지 않는다면 스도쿠가 아니다. 그리고 3x3의 사각형에 1부터 9까지 존재하는지 확인하고 존재한다면 1로 출력하는 문제이다. T = int(input()) check = [1,2,3,4,5,6,7,8,9] #스도쿠 검증 리스트 for tc in range(1,T+1): arr = [] row_cnt = [0] * 9 for i in range(9): temp = [] temp = list(map(int,input().split())) if sorted(temp) == check: row_cnt[i] = 1 #행..
T = int(input()) for tc in range(1, T+1): N,M = map(int, input().split()) arr = [] for i in range(N): arr.append(list(map(int,input().split()))) arr_sum = [] #각 네칸의 합을 저장할 리스트 for i in range(N-M+1): #한칸전까지 범위로 설정 for j in range(N-M+1): sum_result = 0 for a in range(0,M): #0부터 M-1까지 더해주기 for b in range(0,M): sum_result += arr[i+a][j+b] arr_sum.append(sum_result) print("#{} {}".format(tc, max(arr_..
이 문제는 날 너무 힘들게 한 문제다. 몇번이나 고치고 고친지 모르겠다. 끝에가 2이므로 그 끝점을 찾아서 올라가는 방식이다. 오른쪽/왼쪽으로 갈 수 있는 곳까지 계속가고 위로올라가면서 제일 위에있는 즉 0행에 있는 열의 값을 구하면 되는 문제이다. T = 10 for tc in range(1,T+1): N = int(input()) arr = [] for i in range(100): arr.append(list(map(int, input().split()))) #배열 값 받음 #끝에 2가 있는 점 찾아줌 end = 0 for i in range(100): if arr[99][i] == 2: end = i break x = 99 y = end #1.기본은 위로 직진 x -= 1 #2.좌.우를 만난다면 ..
처음에 어렵게 코드를 짜다가 결과값이 제대로 나오지 않아서 수업을 듣고 고쳤다. 이렇게 쉽게 풀 수 있다니 내가 너무 어렵게 생각했나 싶었다. 열심히 해야지! 처음에 생각한 로직 #가로를 계산하는 경우: 시작하는곳 왼쪽에는 0이거나 퍼즐의 첫 부분이어야한다. #즉, 왼쪽은 1이 아님 #세로로 계산하는 경우: 위가 0이거나 퍼즐의 끝부분 이어야한다 #즉, 위쪽은 1이 아님 #가로는 오른쪽으로 갔을 때 K칸만큼 1이 갔으면 K+1칸은 1이면 안됨 #세로는 아래로 갔을 때 K칸만큼 1이 갔으면 K+1칸은 1이면 안됨 이렇게 코드를 구현했는데 원하는 값이 안나왔다. 잘못된코드 T = int(input()) for tc in range(1,T+1): N,K = map(int,input().split()) arr ..
def bubble_sort(arr): for i in range(len(arr) - 1, 0, -1): for j in range(0, i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr T = int(input()) for tc in range(1, T+1): N = int(input()) arr = list(map(int,input().split())) bubble_sort(arr) new_list1 = [] #큰 수 리스트로 담기 new_list2 = [] #작은수 for i in range(0, len(arr)//2): new_list2.append(arr[i]) for i in range(len(arr)-..
T = int(input()) for tc in range(1, T+1): P,A,B = map(int, input().split()) start = 1 end = P cnt_A = 0 cnt_B = 0 #A의 경우 while True: mid = int((start + end) / 2) cnt_A += 1 if mid == A: break elif mid A: #중간값이 찾는값보다 작으면 끝점으로 치환 end = mid #B의 경우 start = 1 end = P while True: mid = int((start + end) / 2) cnt_B += 1 if mid == B: break elif mid < B..
T = int(input()) for tc in range(1, T+1): N = int(input()) #테스트케이스의 번호 num = list(map(int, input().split())) score = [0]*101 #점수는 0부터 100 for i in range(len(num)): #학생수만큼 반복 score[100-num[i]] += 1 #점수를 인덱스로받아서 1씩올려줌 #100이 score[0]에 들어가도록,순서를 거꾸로 받아서 최대값의 인덱스를 구해준다 max_score = score[0] for j in range(1,101): if max_score < score[j]: max_score = score[j] result = 100 - score.index(max_score) #100에..
T = 10 for tc in range(1, T+1): N = int(input()) arr = [] for i in range(100): temp_arr = list( map(int,input().split())) arr.append(temp_arr) #한 행에 한 리스트 형식으로 받아준다 #행,열 순회 sum_row = [] sum_col = [] for i in range(100): sum1,sum2 =0,0 for j in range(100): sum1 += arr[i][j] #행 sum2 += arr[j][i] #열 sum_row.append(sum1) # 행의 합을 리스트로 만들어줌 sum_col.append(sum2) # 열의 합을 리스트로 max_row = sum_row[0] max_co..
T = int(input()) for tc in range(1, T+1): N, Q = map(int,input().split()) num = [0] * N #처음은 N개의 0 for i in range(1, Q+1): L, R = map(int,input().split()) #L번부터 R번까지 상자의 값을 i로 변경 for j in range(L-1, R): num[j] = i print("#{}".format(tc), end=' ') print(*num)
- Total
- Today
- Yesterday
- vue
- 배포
- Java
- 자바
- 백준
- 알고리즘
- javascript
- 싸피
- 비동기패턴
- 세션 스토리지
- 프로그래머스
- splide
- 안드로이드스튜디오
- django
- SQL
- SWEA
- SSAFY퇴소
- 파이썬
- vue.js
- git
- Pyhton
- Python
- N과M
- 트리
- SSAFY
- 독학
- 위클리챌린지2주차
- commit되돌리기
- AWS
- DOM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |