본문 바로가기

분류 전체보기

(256)
파이썬)리코쳇 로봇- 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(board): answer = 0 R = len(board) C = len(board[0]) rx, ry = 0, 0 for i in range(R): for j in range(C): if board[i][j]=='R': rx, ry = i, j dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] de..
파이썬) 인구이동 -BOJ https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 이 문제를 읽었을 때 좀 쉬워보였다. 그러나 머지않아 문제를 발견했다. bfs를 통해 얻은 값들 중 최초 visit[i][j] == False인 i,j값을 어떻게 할까, 또 visit[i][j] == False지만 주변국가들이 모두 만족하지 않았을 때였다. 그러나 고민은 곧 해결되었다. 애초에 contries 배열에 i,j를 append시키고 만약 contries의 길이가 1이라면 ..
파이썬) 게임 -BOJ https://www.acmicpc.net/problem/1072 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net import math X, Y = map(int, input().split()) Z = (Y * 100) // X if Z >= 99: print(-1) else: right = X left = 1 answer = 0 while left
파이썬)음식물 피하기-BOJ https://www.acmicpc.net/problem/1743 from collections import deque n, m, trash_count = map(int, input().split()) arr = [[0 for _ in range(m)]for _ in range(n)] visit = [[False for _ in range(m)]for _ in range(n)] trash_position = deque() for i in range(trash_count): x, y = map(int, input().split()) x -= 1 y -= 1 trash_position.append((x, y)) arr[x][y] = 1 max_trash = 0 dx = [0, 0, -1, 1] dy = [-..
파이썬) 치즈 - BOJ https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 어디서 많이 본 문제다 생각했다. 바로 같은 이름을 가진 백준에 있는 "치즈"라는 문제다. https://junheelab.tistory.com/105 파이썬)치즈 junheelab.tistory.com 이번 치즈 문제도 비슷하다. 하지만 전에 푼 문제와 다른 점이있다면, 공기(0)와 2면 이상이 접촉한 경우에만 치즈가 녹아없어진다. from copy import deepcopy fr..
파이썬) 케빈 베이컨의 6단계 법칙 BOJ https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net from collections import deque n, m = map(int, input().split()) arr = [[] for _ in range(n+1)] answer = [99998999999999999999999999999999999999999999, 0] # for i in range() for i in range(m): a, b ..
파이썬) 퇴사 -BOJ https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 이해는 상당히 쉽다. 읽어보면 한 번에 이해가 되므로 문제 이해는 건너 뛰고, 이를 어떻게 풀 것인가를 나는 곰곰히 생각해보았다. 우선 n은 15 이하이다. 즉, 브루트포스를 이용해 풀어도 손쉽게 풀 수 있는 문제이다. 하지만 어떤 상담을 선택하고, 어떤 상담을 선택하지 않을지에 대해 다시 생각했다. 브루트 포스와 선택과 선택 안함. 이 문제는 어디선가 보았던 문제와 상당히 비슷했다. https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자..
파이썬)A -> B -BOJ https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net from collections import deque a, b = map(int, input().split()) r = 1 def bfs(a, b): q = deque() q.append((a, 1)) while q: a, count = q.popleft() if a == b: print(count) return if a * 2