취뽀 기록

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

코린이 탈출 일지

[코드트리] 문자열 순회하기 > 짝수 번째만 거꾸로 출력

문자열이 주어졌을 때, 주어진 문자열의 짝수 번째로 주어진 문자만을 고른 문자열을 역순으로(거꾸로) 출력하는 프로그램을 작성해보세요. # 문자열을 구현하여 입력받습니다. string = input() # 가장 먼저 출력해야 할 문자의 인덱스를 구합니다. idx = len(string) - 1 if idx % 2 == 0: idx -= 1 # 문자열을 순회하여 조건대로 문자를 출력합니다. for i in range(idx, -1, -2): print(string[i], end="") # 나의 풀이 -------------------------------- string = input() string = string[1::2] print(string[::-1])

[코드트리] 2023.07.03 0

[코드트리] 문자열 찾기 > 부분문자열 위치 구하기(★)

주어진 입력 문자열에 대하여 목적 문자열이 부분 문자열로 존재하는 경우, 부분 문자열의 시작 인덱스를 출력하는 코드를 작성해보세요. 인덱스는 0부터 시작한다고 가정합니다. import sys input_str = input() target_str = input() input_len, target_len = len(input_str), len(target_str) # 입력 문자열의 각 문자를 시작점으로 하여 목적 문자열을 만들 수 있는지 확인합니다. for i in range(input_len): # input_str의 i 부터 i + target_len - 1까지의 원소가 # target_len의 0부터 target_len - 1 까지의 원소와 # 정확히 일치하는지 확인합니다. # 만약 input_str..

[코드트리] 2023.07.04 0

[코드트리] 문자열 찾기 > 부분 문자열의 개수

두 문자열 A와 B가 주어졌을 때, 문자열 B가 문자열 A의 부분 문자열로써 등장하는 횟수를 구하는 프로그램을 작성해보세요. # 문자열을 입력받습니다. a = input() b = input() ans = 0 # 문자열의 길이를 구합니다. len_a = len(a) # 문자열 b가 등장하는 횟수를 구합니다. for i in range(len_a - 1): if a[i] == b[0] and a[i + 1] == b[1]: ans += 1 # 출력 print(ans) # 나의 풀이 ---------------------------------------- a = input() b = input() cnt = 0 for i in range(len(a)): if a[i] == b[0]: if a[i+1] == ..

[코드트리] 2023.07.04 0

[코드트리] 직각삼각형 별 출력 > 별표 출력하기 5

정수 n의 값을 입력받아 별표를 출력하는 프로그램을 아래 예를 참고하여 작성해보세요. n에 2를 입력받는 경우 ** ** * n에 3을 입력받는 경우 *** *** *** ** ** * # 변수 선언 및 입력 n = int(input()) # i는 각 행마다 *을 몇 묶음씩 출력 할 것인지를 의미합니다. for i in range(n, 0, -1): # j는 각 행마다 *묶음을 i번 출력하는 역할을 합니다. for _ in range(i): # k는 *묶음을 출력해주는 역할을 합니다. # *묶음은 항상 i개의 *로 이루어져 있습니다. for _ in range(i): print("*", end="") # *묶음을 만든 이후에는 꼭 공백을 띄워줘야 합니다. print(" ", end="") # 행마다 한 ..

[코드트리] 2023.06.22 0

[Level 2] 조건에 맞는 개발자 찾기(★)

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS WHERE SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#') >0 OR SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'Python') >0 ORDER BY ID * 비트 연산을 이용해서 풀어야 함 SELECT CODE FROM SKILLCODES WHERE NAME = 'C#' 해당 코드 의미 : SKILLCODES 테이블에서 코드 이름이 C#인 코드 WHERE 조건으로 C# 코드와 SKILL_CODE의 비트연산 수행해야 함. => 0보다 크다는 의미는 포함하고 있다는 의미이기 때문에 C# 스킬..

[프로그래머스] 2024.04.19 1

[코드트리] 새로운 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 ..

[코드트리] 2023.07.14 0

[코드트리] 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번 노드로 가..

[코드트리] 2023.07.12 0