취뽀 기록

#열심히 살자 #취업 #공부

분류 전체보기 221

[코드트리] 새로운 2차원 배열의 선언 > 두 개의 격자 비교하기

n x m 크기의 2차원 격자가 두 개 주어지고, 새로운 2차원 격자를 만들려고 합니다. 주어진 두 격자에서 같은 위치에 존재하는 숫자의 값이 같다면 0, 그렇지 않다면 1을 적어주려 합니다. 새로운 2차원 격자를 만들어 이를 해결하는 프로그램을 작성해보세요. 문제풀이 로직 1. n, m을 입력 받는다. 2. 2차원 배열 2개를 입력 받는다. 3. 값을 비교해서 0과 1 원소를 넣을 2차원 배열을 생성한다.(grid 배열) 4. 원소를 비교해서 같으면 grid 배열에 0, 다르면 1 원소를 입력하여 출력 # n, m을 입력받습니다. n, m = tuple(map(int, input().split())) # 첫 번째 2차원 배열을 구현해 정수를 입력받습니다. arr_1 = [ list(map(int, in..

[코드트리] 새로운 2차원 배열의 선언 > 두 배열의 곱

3행 3열의 배열 두 개가 주어지면 두 배열의 같은 위치에 있는 숫자의 곱을 출력하는 프로그램을 작성해보세요. # 첫 번째 2차원 배열을 구현해 정수를 입력받습니다. arr_1 = [ list(map(int, input().split())) for _ in range(3) ] input() # 두 번째 2차원 배열을 구현해 정수를 입력받습니다. arr_2 = [ list(map(int, input().split())) for _ in range(3) ] # 2차원 배열을 구현합니다. arr_3 = [ [0 for _ in range(3)] for _ in range(3) ] # 두 배열의 곱을 새로운 배열에 담습니다. for i in range(3): for j in range(3): arr_3[i][j..

[코드트리] 새로운 2차원 배열의 선언 > 숫자 직사각형

정수 n과 m의 값을 입력받아 숫자로 이루어진 직사각형을 출력하는 프로그램을 아래 예를 참고하여 작성해보세요. 단, 2차원 배열을 꼭 사용하여 해결해보세요. 예) n에 3을 m에 5를 입력받는 경우 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 풀이 1 n, m = list(map(int, input().split())) # 행의 개수 n, 열의 개수 m 입력 받기 # n, m = tuple(map(int, input().split())) 이렇게 해도 됨 # 2차원 배열 구현 arr_2d = [ [0 for _ in range(m)] for _ in range(n) ] # n * m 크기의 배열에 숫자를 채워 넣기 num = 1 for i in range(n): # n행 for j ..

[python] 2차원 배열 선언과 활용

전부 0으로 초기화된 2차원 배열 만들기(n x n 크기) n = 4 arr_2d = [ [0 for _ in range(n)] for _ in range(n) ] print(arr_2d) >> 출력 결과 [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] n x m 크기의 격자 초기화 n, m 위치 유의하기! n, m = 4, 5 arr_2d = [ [0 for _ in range(m)] for _ in range(n) ] print(arr_2d) >> 출력 결과 [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 2차원 배열 출력하기 n = 4 arr_2d = [[1, 2, 3, ..

[코드트리] 2차원 배열 입력 > 플로이드-워셜 알고리즘(Warshall algorithm)

플로이드-워셜 알고리즘 한 정점으로부터 다른 모든 정점까지의 최단거리를 모든 정점에 대해 구하는 알고리즘 dist[A][B] = min(dist[A][B], dist[A][C] + dist[C][B]) - 왼쪽과 같은 그래프가 존재할 때, 오른쪽 표는 i -> j로 가는 최단거리 - 자기 자신은 0으로, 도달할 수 없는 노드(선으로 연결되어 있지 않은 노드)는 무한대로 초기화 플로이드 와샬 알고리즘은 노드 선택 순서가 중요! 제일 먼저 거칠 노드 C를 정한 후, 시작 노드 A와 도착 노드 B를 정해야 함 => 그래야 시작 노드에서 도착 노드의 최솟값 갱신이 순서에 상관없이 가능 ex) 2번 노드를 거쳐 가는 경우 이 그래프에서 2번 노드를 거쳐가면서 경로가 짧아지는 경우는 3번 노드 -> 4번 노드로 가..

[코드트리] 2차원 배열 입력 > 배열의 평균(★)

숫자로 이루어진 2행 4열의 배열이 주어지면 가로 평균, 세로 평균, 전체 평균을 소수 첫째 자리까지만 출력하는 프로그램을 작성해보세요. # 2차원 배열을 구현해 각 줄마다 정수를 입력받습니다. arr_2d = [ list(map(int, input().split())) for _ in range(2) ] # 가로 평균을 출력합니다. for i in range(2): sum_val = 0 for j in range(4): sum_val += arr_2d[i][j] print(f"{sum_val / 4:.1f}", end=" ") print() # 세로 평균을 출력합니다. for i in range(4): sum_val = 0 for j in range(2): sum_val += arr_2d[j][i] p..

[코드트리] 2차원 배열 입력 > 대문자로 바꾸기

소문자 알파벳으로 이루어진 5행 3열의 배열이 주어지면 대문자로 바꾸어서 출력하는 프로그램을 작성해보세요. # 2차원 배열을 구현해 각 줄마다 알파벳 소문자를 입력받습니다. arr_2d = [ list(input().split()) for _ in range(5) ] # 알파벳 소문자를 대문자로 바꾸어 출력합니다. for i in range(5): for j in range(3): arr_2d[i][j] = chr(ord(arr_2d[i][j]) + ord('A') - ord('a')) print(arr_2d[i][j], end=" ") print() # 나의 풀이 --------------------------------------- for _ in range(5): arr = list(map(str,..

[코드트리] 문자열을 정수로 변환하기 > 알파벳 지우기

알파벳과 숫자로 이루어진 문자열이 두 개 주어지면, 각 문자열에서 알파벳을 제외하고 남은 숫자부분을 차례대로 이어붙여 만든 수를 구하고, 두 문자열에서 구한 두 수의 합을 구하는 프로그램을 작성해보세요. # 문자열을 구현하여 입력받습니다. a = input() b = input() idx1 = 0 idx2 = 0 str1 = "" str2 = "" # a의 정수로 변환 가능한 부분을 다른 문자열로 옮깁니다. for elem in a: if ord(elem) = ord('0'): str1 += elem # b의 정수로 변환 가능한 부분을 다른 문자열로 옮깁니다. for elem in b: if ord(elem) = ord('0'): str2 += elem # 합쳐진 문자열을 숫자로 바꿉니다. str1 = ..

[코드트리] 문자열을 정수로 변환하기 > 정수만 추출하기

공백을 포함하지 않는 두 개의 문자열이 주어지면 앞에서부터 정수 이외의 문자가 나오기 전까지의 부분에서 정수로 변환 가능한 부분을 변환한 후 두 수의 합을 출력하는 프로그램을 작성해보세요. # 문자열을 구현하여 입력받습니다. a, b = input().split() idx1 = 0 idx2 = 0 # a의 정수로 변환 가능한 최대 인덱스를 찾습니다. for elem in a: if elem = '0': idx1 += 1 else: break # b의 정수로 변환 가능한 최대 인덱스를 찾습니다. for elem in b: if elem = '0': idx2 += 1 else: break str1 = a[:idx1] str2 = b[:idx2] # 합쳐진 문자열을 숫자로 바꿉니다. str1 = int(str..