Problem Solving
-
[프로그래머스] 소수 찾기(Level 2) 문제 파이썬(Python) 풀이Problem Solving/Programmers 2021. 10. 11. 00:40
https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr from itertools import permutations def solution(numbers): def is_prime(num): if num < 2: return False for i in range(2, int(num ** 0.5) + 1): if num % i == 0: return False return True temp = set(..
-
[프로그래머스] 네트워크 문제 파이썬(Python) 풀이Problem Solving/Programmers 2021. 10. 4. 17:59
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr def solution(n, computers): visited = [[False] * n for _ in range(n)] def dfs(i, j): visited[i][j], visited[j][i] = True, True for k in range(n): if not visited[j][k] and computers[j][k] == 1: dfs(j, ..
-
[프로그래머스] 오픈채팅방 문제 파이썬(Python) 풀이Problem Solving/Programmers 2021. 10. 4. 17:55
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr def solution(record): temp = [] names = {} result = [] for r in record: cmd = r.split() if cmd[0] == "Enter": temp.append([cmd[1], '님이 들어왔습니다.']) names[cmd[1]] = cmd[2] elif cmd[0] == "Leave": temp.appen..
-
[백준] 1932번 문제 (정수 삼각형) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 4. 17:49
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net t = int(input()) nums = [list(map(int, input().split())) for _ in range(t)] dp = [] for n in nums: dp.append([0] * len(n)) dp[0][0] = nums[0][0] for i in range(1, t): for j in range(len(nums[i])): if j == 0: dp[i][j] = max(dp[i][j], nums[i][j] + dp[i - 1][j]) elif..
-
[백준] 2210번 문제 (숫자판 점프) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 23. 15:28
https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net import sys sys.setrecursionlimit(10 ** 7) input = sys.stdin.readline mtx = [list(map(int, input().split())) for _ in range(5)] result = set() def dfs(i, j, ch): if len(ch) == 6: result.add(ch) return..
-
[백준] 10988번 문제 (팰린드롬인지 확인하기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 23. 15:24
https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net from collections import deque import sys s = input() dq = deque(s) while len(dq) > 1: if dq.pop() != dq.popleft(): print(0) sys.exit(0) print(1) 사실 reverse()나 reversed() 함수를 이용해서 아주 간단하게 풀 수 있다. 하지만 그러면 의미가 없을 것 같아서.. 간략하게라도 스택을 이용해서 풀었다. 스택의 양 끝 쪽의 값을 비..
-
[백준] 17608번 문제 (막대기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:17
https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net t = int(input()) stack = [] for _ in range(t): bar = int(input()) while stack and stack[-1]
-
[백준] 10026번 문제 (적록색약) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:13
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net from collections import deque dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(i, j, v, arr): q = deque() q.append([i, j]) arr[i][j] = 0 while q: a, b = q.popleft() for k in range(4): x = a + dx[k] y = b + dy[k] if 0
-
[백준] 1032번 문제 (명령 프롬프트) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:09
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net import sys input = sys.stdin.readline t = int(input()) strings = [] for _ in range(t): strings.append(list(input().rstrip())) length = len(strings[0]) result = "" for i in range(length): cur_chr = None isRight = True for..
-
[백준] 1012번 문제 (유기농 배추) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:00
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import sys sys.setrecursionlimit(10 ** 7) input = sys.stdin.readline def dfs(i, j): if i = n or j = m or mtx[i][j] == 0: return mtx[i][j] = 0 dfs(i - 1, j) dfs(i + 1, j) dfs(i, j - 1) dfs(i, j + 1) t = int(inpu..