study

""" - 스택 자료구조 사용 - 입력된 문자열이 짝이 맞는 괄호"()"로 이루어져있는지 확인하여 YES 또는 NO를 반환하는 문제. * 수도 코드 - 입력된 문자열 길이만큼 반복문 돌기 - ( 가 들어오면 stack에 추가 - ) 가 들어오면 stack에 들어있던 ) 를 삭제 (= 짝이 맞다) - 반복문이 끝났을 경우 ( 가 - stack에 남아있다면 짝이 맞지 않다. => NO를 반환 - stack이 남아있지 않다면 짝이 맞다. => YES를 반환 메모리 31120KB | 시간 44ms | 길이 367B """ t = int(input()) str_ls = [input() for _ in range(t)] def check_vps(str): stack = [] # stack 생성 for char in..
· study/TIL
1. 스택 (Stack) 후입선출(LIFO : Last In First Out). 파이썬의 list를 사용해서 구현할 수 있다. 기본 연산 push : 스택에 원소 추가 pop : 스택에 가장 마지막으로 들어온 원소를 제거하고 그 값을 반환 peek : 스택에 가장 마지막으로 들어온 원소를 조회 list로 스택 구현하기 stack = [] stack.append(3) # 3 push stack.append(2) # 2 push stack.append(5) # 5 push stack.pop() # pop -> 5 가 제거됩니다 print(stack[-1]) # peek / python의 음수 인덱스를 활용. 맨 마지막 요소가 출력됨 2. 큐 (Queue) 선입선출(FIFO : First In First O..
· study/TIL
오늘 강의는 없었고, 코딩 테스트를 했다. 문제가 어려운 것들이 너무 많았다 😢 그래도 멘토링 시간에 다 어려워하는 부분이니 걱정하지 말라는 얘기도 들었고 좋은 문제들에 대해 정리해볼 수 있었다. 사실 오늘 코딩 테스트 문제들을 풀면서 좀 힘들었다... 계속 실패하는 문제들 때문에 힘들었고 멘탈적으로도 좀 힘들었다. 그래도 조금 쉬고 나서 다시 생각해보면 내가 파이썬으로 알고리즘을 공부한지는 겨우 일주일쯤인데 잘하기를 바라는건 욕심인 것 같다는 생각이 들었다. 또 힘들긴 했지만 처음 문제들을 풀때 파이썬 함수들을 몰라서 계속 구글링 했던걸 생각하면 지금은 그래도 어느정도는 외우고 익숙해진 함수들이 있으니까 아주 늘지 않았다고는 말할수 없기도 하고. 내가 원하는 만큼은 아니지만 분명히 실력이 늘긴 늘었다는..
address = input().split(':') # 콜론 기준으로 주소를 분리 if address[0] == '': # 맨 첫자리가 공백일 경우 = 콜론일 경우 제거. 중복되지 않기 위함 address = address[1:] if address[-1] == '': # 끝자리가 공백일 경우 제거. 0이 중복일 경우 ::로 표현되니까 체크해줌 address = address[:-1] result = '' for i in address: # 입력된 주소만큼 반복 if i == '': # 빈 문자열이라면 = : = 0000이 생략됨 result += '0000:' * (8-len(address)+1) # 전체 자리 8 - 받아온 주소 길이 + 1(현재) = 생략된 부분만큼 0000 추가 else: resu..
# 실패코드 board = [list(map(int, input().split())) for _ in range(19)] for i in range(19): for j in range(19): if board[i][j] == 1: # black temp = [0, 0, 0] for k in range(1, 7): if board[i][j + k] == 1: temp[0] += 1 if board[i+k][j] == 1: temp[1] += 1 if board[i+k][j+k] == 1: temp[2] += 1 if 4 in temp: print(1) print(i+1, j+1) exit() if board[i][j] == 2: temp = [0, 0, 0] for k in range(1, 7): if b..
switch_num = int(input()) # 스위치 개수 switch_state = list(map(int, input().split())) # 스위치 상태 student = int(input()) # 학생 수 student_info = [list(map(int, input().split())) for _ in range(student)] # 학생 성별과 받은 숫자 for i in range(student): # 학생 수만큼 반복 num = student_info[i][1] # 현재 학생이 받은 숫자 if student_info[i][0] == 1: # 남학생이라면 for j in range(switch_num): # 스위치 개수만큼 반복 if (j+1) % num == 0: # 스위치 번호가 nu..
# 제일 바깥쪽 1줄을 큰 사각형이라고 하고 회전, 그 안쪽 사각형 회전... n, m, r = map(int, input().split(' ')) graph = [list(map(int, input().split(' '))) for _ in range(n)] for _ in range(r): # 회전 수만큼 반복 for i in range(min(n, m) // 2): # 사각형 개수 s_x, s_y = i, i # 맨 처음 좌표 지점 s_value = graph[s_x][s_y] # 맨 처음 좌표가 가진 값 for j in range(i + 1, n - i): # 좌 s_x = j prev_value = graph[s_x][s_y] # 현재 좌표값 graph[s_x][s_y] = s_value # 현..
n = int(input()) room = [list(input()) for _ in range(n)] w, h = 0, 0 # 가로/세로로 누울 수 있는 자리 for i in range(n): temp_w = '' # 빈칸이 연속해있는지 확인하기 위한 임시 변수 temp_h = '' for j in range(n): # 가로 if room[i][j] == '.': # 빈칸일경우 임시변수에 추가 temp_w += '.' else: # 빈칸이 아닐경우(X) if len(temp_w) >= 2: # 2칸 이상인지 체크 w += 1 temp_w = '' # 임시 변수 비우기 # 세로 if room[j][i] == '.': temp_h += '.' else: if len(temp_h) >= 2: h += 1 t..
n, m = map(int, input().split()) board = [list(input()) for _ in range(n)] coloring = [] for a in range(n - 7): # 8*8의 범위 지정 for b in range(m - 7): w_idx = 0 # 흰색으로 시작할 경우 색칠되어야 하는 개수 b_idx = 0 # 검은색으로 시작할 경우 색칠되어야 하는 개수 for i in range(a, a + 8): # 시작 지점 for j in range(b, b + 8): # 시작지점 if (i + j) % 2 == 0: # 인덱스의 합이 짝수일때. 짝수는 시작값과 같아야하니까. if board[i][j] != 'W': # B라면 w_idx += 1 # W로 칠하기(흰색으로 시작..
arr = [list(map(int, input().split())) for _ in range(9)] max_dict = {} for i in range(len(arr)): max_dict[i] = max(arr[i]) max = max(max_dict.values()) for i in max_dict.keys(): if not max in arr[i] : continue else: print(max) print(i + 1, arr[i].index(max) + 1) exit() # 구현할때 반복문을 여러번 돌려야하는건 맞는것같아서 반복하는 수를 줄여주려고 했음 # max_dict에 각 줄의 최대값을 담아줌 = 줄수만큼만 반복 # max에 최대값 구함 # max_dict에서 최대값이 있는 줄을 찾음. 그..
해리Harry
'study' 카테고리의 글 목록 (8 Page)