Programmers 36

[프로그래머스 Lv.3] 네트워크

def solution(n, computers): answer = 0 graph = [[] for i in range(n)] visited = [False]*n for i,row in enumerate(computers): for j,value in enumerate(row): if i != j and value == 1: graph[j].append(i) def dfs(n): if visited[n]: return False visited[n] = True for i in graph[n]: if not visited[i]: dfs(i) return True for i in range(n): if dfs(i): answer += 1 return answer 이번 문제는 컴퓨터의 개수 n과 연결에 대한 정..

Algorithm/DFS 2023.07.31

[프로그래머스] 연속된 수의 합

def solution(num, total): answer = [] multiple = 0 if num%2 == 0: start_num = num//2 answer = [i for i in range(-(num//2)+1, num//2+1)] else: start_num = 0 answer = [i for i in range(-(num//2),num//2+1)] while(1): if start_num == total: answer = [i+multiple for i in answer] break start_num += num multiple += 1 return answer 이번 문제는 주어진 num개의 연속된 수의 합이 total이 되도록 하는 연속된 수로 이루어진 배열을 구하는 문제이다. 처음에는 ..

[프로그래머스] 문자열 밀기

def solution(A, B): def move(string): list_str = list(string) str_len = len(list_str) new_list = [list_str[-1]] + list_str[:-1] print(new_list) return ''.join(new_list) available = False check_str = A answer = 0 for i in range(len(A)): if check_str == B: available = True break check_str = move(check_str) answer += 1 if available: return answer else: return -1 이번 문제는 주어진 문자열 A를 오른쪽으로 밀면서 B를 만들 수 ..

Algorithm/String 2023.07.21

[프로그래머스] 숨어있는 숫자의 덧셈(2)

def solution(my_string): answer = 0 num_list = ("0","1","2","3","4","5","6","7","8","9") temp_str = '' for value in my_string: if value in num_list: temp_str += value else: if temp_str != '': answer += int(temp_str) temp_str = '' if temp_str != '': answer += int(temp_str) return answer 이번 문제는 주어진 문자열에서 정수 값만 골라서 더해준 값을 구하는 문제이다. temp_str 이라는 임의의 문자열을 선언한 뒤에 주어진 문자열을 순회하면서 해당 문자가 숫자인 경우에만 붙여주고, 자..

Algorithm/String 2023.07.20

[프로그래머스] OX퀴즈

def solution(quiz): answer = [] for i in quiz: data = i.split() result = int(data[-1]) formula = ''.join(data[:-2]) if eval(formula) == result: answer.append("O") else: answer.append("X") return answer 이번 문제는 주어진 수식들을 계산한 결과가 맞았을 경우에는 O, 틀렸을 경우에는 X를 반환할 수 있도록 하는 문제이다. 수식의 각 항들을 공백 기준으로 리스트에 저장한 뒤에 결과 값과 계산식의 결과를 비교하여 문제를 풀이하였다 :)

Algorithm/String 2023.07.20

[프로그래머스] 문자열 계산하기

def solution(my_string): data = my_string.split() # ['3', '+', '4'] answer = int(data[0]) for i in range(1,len(data)-1,2): if data[i] == '+': answer += int(data[i+1]) else: answer -= int(data[i+1]) return answer 이번 문제는 주어진 수식 문자열을 계산하여 결과를 리턴하는 문제이다. 처음에는 문자열을 모두 순회하며 + 인지 - 인지 저장해가며 풀었는데, 테스트케이스에서 실패하여 연산자를 기준으로 값을 처리했더니 통과할 수 있었다. eval 함수 : 매개변수로 받은 expression(우리가 아는 일반적인 사칙연산 '식')을 문자열로 받아서 실..

Algorithm/String 2023.07.20