SWEA

    [python] SWEA - 10804. 문자열의 거울상

    [python] SWEA - 10804. 문자열의 거울상

    🤔문제 해결 lv3 | 문자열 💻소스 코드 for tc in range(int(input())): word = input() answer = '' for i in range(len(word) - 1, -1, -1): if word[i] == 'b': answer += 'd' elif word[i] == 'd': answer += 'b' elif word[i] == 'p': answer += 'q' else: answer += 'p' print(f'#{tc + 1} {answer}') 📕문제 확인 출처: SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com

    [python] SWEA - 6019. 기차 사이의 파리

    [python] SWEA - 6019. 기차 사이의 파리

    🤔문제 해결 D3 | 수학? 파리와 맞은 편 기차가 만나는 시간은 t 로 같다 파리와 맞은 편 기차가 이동한 거리의 합은 D 이다. 이렇게 저렇게 식을 계산 해보면 파리가 이동한 거리는 파리가 이동한거리는 따로 누적해주고, 파리의 속력과 이동한거리가 있으므로 시간을 구해주고 구한 시간으로 기차의 이동거리를 구해준다. 그럼 남은 기차사이의 간격은 (기존의 기차사이의 간격 - 두 기차의 이동거리) 💻소스 코드 if __name__ == "__main__": T = int(input()) for tc in range(1, 1 + T): # 사이의 거리, A 속력, B 속력, 파리 속력 D, A, B, F = map(int, input().split()) # s = v*t 파리가 날아간 거리 fly_d = 0 ..

    [python] SWEA - 1248. 공통조상

    [python] SWEA - 1248. 공통조상

    🤔문제 해결 D5 | 그래프 이진 트리를 만들어서 문제를 해결하자. 이런식으로 2차원 배열을 만든다. 길이가 3인 리스트가 V개인 2차원리스트 부모 노드들 찾기첫 노드 (여기서는 8 과 13) 에서 시작해서 부모 노드를 타고 쭉 올라간다. ( DFS ) 8 의 부모 노드는 [5, 3, 1] 13의 부모 노드는 [11, 6, 3, 1] 공통 부모 노드 찾기 앞에서부터 for문을 돌며 겹치는 친구 찾고 바로 나오기 (여기서는 3) 공통 부모 노드 크기 찾기 노드(여기서는 3)에서 자식 노드를 타고 쭉 내려가면서 개수를 세어준다(DFS) 💨 💻소스 코드 def find_parent(n, parent_list): if tree[n][2]: parent_list.append(tree[n][2]) find_pare..

    [python] SWEA - 4261. 빠른 휴대전화 키패드

    [python] SWEA - 4261. 빠른 휴대전화 키패드

    🤔문제 해결 1. D5 | 이게 왜 D5? 2. 키패드 리스트나 딕셔너리를 만든다. 3. 각각의 단어들을 한글자 한글자 체크한다. 4. 단어 안의 한글자가 누른 키패드의 문자 안에 포함되어 있지 않으면 체크를 멈추고 5. 모두 통과하면 카운트를 세어준다. 💨 D5라서 재귀함수를 통해 가능한 모든 단어를 구하고 포함관계를 구해줬는데 틀렸다. 혹시나 해서 단순하게 접근했더니 쉽게 풀렸다. D5가 아닌거 같다... 💻소스 코드 keypad = { '2': ['a', 'b', 'c'], '3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'], '5': ['j', 'k', 'l'], '6': ['m', 'n', 'o'], '7': ['p', 'q', 'r', 's'], '8': ['t', '..

    [python] SWEA - 1238. [S/W 문제해결 기본] 10일차 - Contact

    [python] SWEA - 1238. [S/W 문제해결 기본] 10일차 - Contact

    🤔문제 해결 1. D4 | BFS 2. 주어진 인풋값으로 인접리스트를 만든다. 3. 똑같은 노드를 탐색하는 것을 막기 위해 방문여부를 확인할 visited 리스트, BFS에서 같은 깊이에서 가장 큰 숫자를 기억해둘 result를 만들고 deque를 이용해 BFS 탐색을 한다. 4. 재귀 함수를 이용해서 BFS의 깊이마다 result의 값을 갱신해준다. 5. 마지막으로 갱신된 result 를 출력 💨 💻소스 코드 from _collections import deque def contact(current_q): global result # 마지막 연락받은 사람들 중 가장 큰 값 result = max(current_q) # 다음 연락 받을 사람들이 들어갈 리스트 next_q = deque() # 현재 연락받..

    [python] SWEA - 1219. [S/W 문제해결 기본] 4일차 - 길찾기

    [python] SWEA - 1219. [S/W 문제해결 기본] 4일차 - 길찾기

    🤔문제 해결 1. D4 | DFS 스택 2. 인접리스트를 만든다. 3. DFS 탐색을 한다. 4. 끝점을 만나면 answer = 1 아니면 그대로 answer = 0 을 출력한다. 💨 DFS 기본 문제 💻소스 코드 for _ in range(1, 11): tc, n = map(int, input().split()) # 인접 리스트를 만든다. # {1:[2,3], 2:[4,8]} # 1에서 2와 3으로 갈 수 있고, 2에서 4와 8로 갈 수 있다는 의미 adj_list = list(map(int, input().split())) adj = {x:[] for x in range(100)} for i in range(0, n*2, 2): s = adj_list[i] e = adj_list[i+1] adj[s]..