python 61

[백준][Python] 2422 한윤정이 이탈리아에 가서 아이스크림을 사먹는데

🍦 https://www.acmicpc.net/problem/2422 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 첫째 줄에 정수 N과 M이 주어진다. N은 아이스크림 종류의 수이고, M은 섞어먹으면 안 되는 조합의 개수이다. 아래 M개의 줄에는 섞어먹으면 안 되는 조합의 번호가 주어진다. 같은 조합은 두 번 www.acmicpc.net 내 풀이 from itertools import combinations N, M = map(int, input().split()) do_not_mix = [[] for _ in range(N+1)] icecream = [x for x in range(1, N+1)] three_icecream = [] ans = 0 for i in combinations(i..

코딩테스트 2024.03.11

[백준][Python] 1251 단어 나누기

🔤 https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 내 풀이 from itertools import combinations word = input() split_length = [x for x in range(len(word)-1)] split_index = [] split_words = [] for i in combinations(split_length, 2): split_index.append(list(i)) for i in range(len..

코딩테스트 2024.03.11

[백준][Python] 18429 근손실

💪🏻 https://www.acmicpc.net/problem/18429 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 내 풀이 (순열 사용, 브루트포스) from itertools import permutations N, K = map(int, input().split()) A = list(map(int, input().split())) arr = [] ans = 0 current = 500 # 현재 중량 for i in permutations(A, N): arr.append(list(i)) fo..

코딩테스트 2024.03.10

[프로그래머스][Python] 추억 점수

📸 https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(name, yearning, photo): answer = [] for i in range(len(photo)): missing = 0 for j in photo[i]: if j in name: missing += yearning[name.index(j)] answer.append(missing) return answer missing: 추억 점수 사진에 찍힌..

코딩테스트 2024.03.09

[백준][Python] 7576 토마토

🍅 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 내 풀이 from collections import deque def bfs(): q = deque() for i in range(len(tomato_index)): q.append((tomato_index[i][0], tomato_index[i][1])) while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k]..

코딩테스트 2024.03.09

[백준][Python] 10026 적록색약

❤️💚 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): global area q = deque() q.append((x,y)) visited[x][y] = True color = arr[x][y] # 현재 색 area += 1 while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k],..

코딩테스트 2024.03.08

[백준][Python] 2583 영역 구하기

◼️ https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): visited[x][y] = True q = deque() size = 0 if arr[x][y] == 0: q.append((x,y)) size += 1 while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k], cy..

코딩테스트 2024.03.08

[백준][Python] 14940 쉬운 최단거리

🗺️ https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): q = deque() q.append((x,y)) while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k], cy + dy[k] if 0

코딩테스트 2024.03.06