전체 글 276

백준 2902번 KMP는 왜 KMP일까? 파이썬

https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 답안 print(''.join([i for i in input() if i.isupper()])) 처음엔 두가지 방법으로 풀었다. 1. 아스키 코드 활용 x = input() answer = '' for i in x: if ord(i) >= 65 and ord(i)

BOJ/Python 2022.02.22

백준 2468번 안전 영역 파이썬 DFS

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 내 답안 import copy import sys sys.setrecursionlimit(10 ** 6) def dfs(x, y): if x = N or x >= N: return False if native_graph[x][y] == 1: native_graph[x][y] = 0 dfs(x - 1, y) dfs(x, y - 1) dfs(x + 1, y) dfs(x, y..

BOJ/Python 2022.02.22

[프로그래머스] 소수 만들기 파이썬

https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 코딩테스트 연습 from itertools import combinations def is_prime(n): if n == 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True def solution(nums): answer = 0 ..

프로그래머스 2022.02.21

[프로그래머스] 약수의 개수와 덧셈 파이썬

https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 월간 코드 챌린지 시즌 2 답안 def solution(left, right): answer = 0 for i in range(left, right + 1): cnt = 0 for j in range(1, i + 1): if i % j == 0: # 약수의 개수 판별 cnt += 1 if cnt % 2 == 0..

프로그래머스 2022.02.17

백준 2178번 미로 탐색 파이썬 BFS

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 내 답안 from collections import deque def bfs(x, y): queue = deque() queue.append((x, y)) while queue: x, y = queue.popleft() for i in range(4): # 상하좌우 탐색 nx = x + dx[i] ny = y + dy[i] # 범위를 벗어나면 무시 if nx = n or ny >= m: co..

BOJ/Python 2022.02.15

[프로그래머스] 신규 아이디 추천 파이썬

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 2021 KAKAO BLIND RECRUITMENT 내 답안 def solution(new_id): temp = '' answer = '' # 1 new_id = new_id.lower() # 2 for i in new_id: if i not in '~!@#$%^&*()=+[{]}:?,/': temp += i new_id = temp temp = '' #..

프로그래머스 2022.02.13

백준 2609번 최대공약수와 최소공배수 파이썬

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 답안 def gcd(m, n): # 최대공약수 함수 if n == 0: return m return gcd(n,m%n) m, n = map(int, input().split()) print(gcd(m, n)) # 최대 공약수 print(m*n//gcd(m, n)) # 최소 공배수 이산 수학을 공부하면서도 배웠지만 최소공약수 구하는 것은 유클리드 호제법을 참고하여 알고리즘을 짜면 된다. 방법은 여러 가지로 볼 수 있지만 나는 유클리드 호제법을 사용하여 문제를 풀었다..

BOJ/Python 2022.02.11

백준 10026번 적록색약 파이썬 DFS

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 답안 import sys sys.setrecursionlimit(10**4) def dfs_R(x,y): if x = n or y >= n: return False if graph[x][y] == 'R': graph[x][y] = 'C' dfs_R(x-1,y) dfs_R(x,y-1) dfs_R(x+1,y) dfs_R(x,y+1) return True ret..

BOJ/Python 2022.02.10
반응형
목차(index)