코드 알고리즘 1.계속해서 4분할을 한다 2.길이가 2가 되면 더이상 분할할 수 없기 때문에 여기서 작은 사각형에서 왼쪽위->오른쪽위->왼쪽아래->오른쪽아래 (Z모양 순서)순서로 cnt +=1 해주며 찾아준다. cnt = 0 def func(a,x,y): global cnt if a == 2: if x == r and y == c: #왼쪽 위 print(cnt) return cnt += 1 if x == r and y + 1 == c: #오른쪽 위 print(cnt) return cnt += 1 if x+1 == r and y == c: # 왼쪽아래 print(cnt) return cnt += 1 if x+1 == r and y+1 == c: #오른쪽 아래 print(cnt) return cnt += 1..
def func(i, j): global result visited[i][j] = 1 # print(i, j,nums[i][j]) if nums[i][j] == 3: #값이 안들어감 # print(i, j) result = 1 return if i-1 >= 0 and nums[i-1][j] != 1 and visited[i-1][j] == 0:# func(i-1, j) if result == 1: return if j-1 >= 0 and nums[i][j-1] != 1 and visited[i][j-1] == 0:# 좌 func(i, j - 1) if result == 1: return if j+1 < N and nums[i][j+1] != 1 and visited[i][j+1] == 0: #우 func..
def func(N): if N > n: print("_" * 4 * (N - 1) + '"재귀함수가 뭔가요?"') print("_" * 4 * (N - 1) + '"재귀함수는 자기 자신을 호출하는 함수라네"') print("_" * 4 * (N - 1) + '라고 답변하였지.') return print("_"*4*(N-1) + '"재귀함수가 뭔가요?"') print("_" * 4 * (N - 1) + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.') print("_" * 4 * (N - 1) + '마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.') print("_" * 4 * (N - 1) + '그의 답은 대부분 옳았다고 하네...
T = int(input()) for tc in range(1, T+1): N,M = list(map(int,input().split())) pizza = list(map(int,input().split())) cheese = [] for i in range(M): cheese.append([i+1,pizza[i]]) #리스트에 인덱스와 함께 치즈 값 넣어주기 # print(cheese) in_pizza = cheese[:N] #화덕에 N개만 넣을 수 있음 remain_pizza = cheese[N:] while len(in_pizza) > 1: #하나만 남으면 중단 check = in_pizza.pop(0) #일단 맨앞 피자 꺼냄 check[1] //= 2 #check[1]인 이유는 [0]이면 인덱스 ..
이 문제는 저번에 풀었던 암호문제랑 거의 같다. 맨 앞에꺼를 빼서 뒤에 붙이는 과정을 M번 반복하면 된다. T = int(input()) for tc in range(1, T+1): N,M = list(map(int,input().split())) nums = list(map(int,input().split())) #N개 숫자 for i in range(M): #M번 이동 temp = nums.pop(0) #맨 앞 빼서 맨뒤로보낸다 nums.append(temp) print('#{} {}'.format(tc,nums.pop(0)))
재귀문제를 풀어보려고 고른건데 파이썬에는 조합을 함수로 사용할 수 있다고 그래서 사용해봤다! 주어진 리스트안에서 6개를 골라서 출력하면 되는 문제다. #첫번째 수는 k, 다음 k개의 수는 집합 S에 포함되는 수 # 입력의 마지막줄은 0 import itertools while True: num = list(map(int,input().split())) k = num.pop(0) #맨 첫번째 원소를 k로 줌 if k == 0: #입력의 마지막줄에는 0 하나만 들어옴 break # print(list(itertools.combinations(num, 6))) c = list(itertools.combinations(num,6)) for i in c: #6자리 조합 #조합의 개수만큼 반복문돌려서 출력 # pr..
큐:FIFO 선입선출 선형큐: 1차원 배열을 이용한 큐 -큐의 크기 = 배열의 크기 -front :마지막에 꺼내진 원소의 인덱스 -rear : 저장된 마지막 원소의 인덱스 *상태표현 -초기상태: front = rear = -1 -공백상태: front = rear -포화상태 : rear =n - 1(배열의 마지막 인덱스) *선형 큐 이용시 잘못된 포화상태 인식을 하여 더 이상의 삽입을 수행하지 않는 현상을 방지하기 위해서 1. 매 연산이 이루어질 때마다 배열의 부분으로 모두 이동시킨다. 2. 처음과 끝이 연결되어있는 원형큐라고 생각하고 사용한다. (남아있는 간에 해서는 활용도가 높아지지만 큐가 가득 차있을 때는 해결되지 않는다.) 원형 큐 -공백상태 : front = rear -포화상태 : 삽입할 rear..
T = int(input()) for tc in range(1, T + 1): str_input = list(input().split()) result = [] print('#{}'.format(tc),end=' ') for i in range(len(str_input)): if str_input[i].isdigit() == True: result.append(int(str_input[i])) if str_input[i] == '.': if len(result) != 1: print('error') break print(result.pop()) break if str_input[i] == '+' : if len(result) == 1 or len(result) == 0: print('error') bre..
지난 금요일 2/26에 월말평가 겸 역량평가 IM등급을 따는 시험을 봤다. 자바반에서 파이썬반으로 옮기고 알고리즘 수업을 따라가기 위해서 설날부터 계속 공부를 했다. 알고리즘을 처음 풀어보기도하고 파이썬에 익숙하게 익히기 위해서 노력을 많이 했었다. 스터디도 2일에 한번꼴로 하고 보충도 들었다. 또 매일 알고리즘 문제를 풀어 글을 남겼다. 싸피 수업을 듣고 잠을 자기전까지 계속 컴퓨터 앞에 앉아서 공부를 했다. 그동안 얼마 안지났지만 알고리즘 문제 해결 능력이 조금이나마 성장했다고 생각한다. ㅎㅎ 역시 노력을 하면 안되는 것이 없는 것 같다. 첫 역량평가라 되게 부담스럽고 긴장이 됐다. 결과적으로는 파이썬이 나한테 잘 맞는 것같다. 내장함수가 잘 되어있어 좋다. PASS를 했고 싸피 2학기 과정을 같이 ..
- Total
- Today
- Yesterday
- 세션 스토리지
- 비동기패턴
- SWEA
- vue.js
- 파이썬
- Java
- 싸피
- 위클리챌린지2주차
- AWS
- SQL
- git
- 배포
- Pyhton
- 독학
- 프로그래머스
- 안드로이드스튜디오
- N과M
- SSAFY
- 트리
- Python
- SSAFY퇴소
- DOM
- vue
- splide
- 알고리즘
- commit되돌리기
- 자바
- 백준
- javascript
- django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |