728x90
반응형

구현 11

[Baekjoon 2531 / python / 실버1] 회전 초밥

투 포인터 문제이다.근데 해결방법 고민 하는데 시간복잡도도 그렇고 그냥 구현해도 될 거 같아서 해봤는데 풀려버렸다... 결론은 투 포인터 안 쓰고 그냥 구현으로 풀었다. # 실버1 -> 투 포인터"""N : 회전 초밥 벨트에 놓인 접시의 수D : 초밥의 가짓수(초밥 최대 번호)K : 연속해서 먹어야 하는 접시의 수C : 쿠폰으로 먹을 수 있는 초밥 번호"""import sysinput = sys.stdin.readlineN, D, K, C = map(int, input().split())sushi = [int(input()) for _ in range(N)]count = 0for start in range(N):        choice = [sushi[(start + i) % N] for i in ra..

[Baekjoon 2002 / Python / 실버1] 추월

구현, 문자열, 해시 테이블 문제이다. # 실버1 -> 구현, 자료구조, 문자열, 해시# 들어간 순서 해시 테이블로 저장해두기# 나온 차량 순서 기준으로, 이후 나올 차량의 "들어올 때 인덱스"를 찾아서# 나온 차량의 들어올 때 인덱스가 한 번이라도 더 클 경우 result += 1N = int(input())go_in = dict()come_out = []for i in range(N):    go_in[input()] = ifor i in range(N):    come_out.append(input())result = 0for i in range(len(go_in) - 1):    # 현재 나온 차량의, 들어올 때 순서    out_car = go_in[come_out[i]]    # 이후 나올 차..

[Baekjoon 14503 / Python / 골드5] 로봇 청소기

구현, 시뮬레이션 문제이다. 문제에 적힌 그대로 구현하면 풀리지만, 코드로 옮기는 과정에서 한두개의 실수조차 범하지 않기는 어렵다. 복잡한 로직은 필요 없이 문제를 아주 세심히 읽고 오차 없이 완벽하게 구현해내면 된다. 물론 난 제대로 안읽어서 고생했다. # 구현, 시뮬레이션import sysinput = sys.stdin.readline# 입력받기N, M = map(int, input().split())x, y, d = map(int, input().split())room = [list(map(int, input().split())) for _ in range(N)]# 0, 1, 2, 3 -> 북 동 남 서dx = [-1, 0, 1, 0]dy = [0, 1, 0, -1]# 청소 시작room[x][y] ..

[Baekjoon 2573 / Python / 골드4] 빙산

DFS, BFS 문제이다. 처음에 DFS로 풀어보려 했지만 도저히 머리를 싸매도 감이 안 와서 다른 풀이를 참고해 BFS로 풀었다. 근데 풀고 나니 별로 어렵게 느껴지지가 않는다. 뭐든 그런 것 같다. 해내기 전엔 어렵고 해내고 나면 당연한 게 되고 말이다. # BFSfrom collections import dequeimport sysinput = sys.stdin.readlineN, M = map(int, input().split()) # 행, 열ice = [list(map(int, input().split())) for _ in range(N)]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def iceBreaker():    # 빙산을 녹이고 개수를 세는 작업이 1번의 반복   ..

Algorithm/BFS 2024.10.04

[Baekjoon 2108 / Python / 실버3] 통계학

# 구현, 수학, 정렬 import sys input = sys.stdin.readline N = int(input()) # 수의 개수, 홀수 number = [] for _ in range(N): number.append(int(input())) if N == 1: # 수가 1개일 경우 print(f'{number[0]}\n{number[0]}\n{number[0]}\n0') else: # 수가 3개 이상일 경우 number.sort() # 최빈값 구하기, 첫번째 숫자 넣어놓고 시작한다 result = [number[0]] curCnt = 1 maxCnt = 1 # 리스트를 한번 순회하며 최빈값을 찾는다 for i in range(1, N): if number[i] == number[i-1]: # 이전..

[Baekjoon 13335 / Python / 실버1] 트럭

from collections import dequeimport sysinput = sys.stdin.readlineN, W, L = map(int, input().split())truck = list(map(int, input().split()))q = deque([0] * W) # 큐 사용time = 0 # 경과시간while q:    time += 1 # 반복할 때마다 시간 증가    q.popleft()    if truck:        if sum(q) + truck[0] L: # 무게 제한에 걸리지 않으면 다리에 올리기            q.append(truck.pop(0))        else:            q.append(0) # 무게에 걸렸다면, 다리길이를 맞추기 위해 0..

Algorithm/Queue 2024.08.16

[Baekjoon 2503 / Python / 실버3] 숫자 야구

import sysimport itertoolsinput = sys.stdin.readline# 질문 횟수N = int(input())# 숫자, 스트라이크, 볼q = []for i in range(N):    q.append(list(map(int, input().split())))num = [i for i in range(1, 10)]numbers = list(itertools.permutations(num, 3))# 결과 저장할 변수result = 0# 생성된 모든 숫자에 대해서 반복for i in numbers:        # 숫자 하나하나에 대해, 모든 질문에 대한 조건 검사    for j in range(len(q)):        strike = 0        ball = 0       ..

[Baekjoon 13717 / Java / 실버5] 포켓몬 GO

N : 포켓몬 종류 개수P : 포켓몬M : P 포켓몬에 대한 총 사탕 개수K : P 포켓몬을 진화시키기 위해 필요한 사탕 개수  포켓몬을 진화시키면 2개의 사탕을 추가로 받게 된다.모든 포켓몬을 총 몇 번 진화시켰는지, 그리고 가장 많이 진화한 포켓몬의 이름을 출력하면 된다. 총 진화횟수를 upgrade 변수에 세고, 각 포켓몬마다의 진화횟수를 count로 세서 가장 많이 진화한 포켓몬 이름을 갱신해 주었다.진화할 때마다 사탕 2개를 받게 되니, 진화 시 "총 사탕 개수 - 필요한 사탕 개수" 를 할 때 2개를 덜 빼주면 된다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;// ..

[Baekjoon 10655 / Java / 실버3] 마라톤 1

import java.io.*;import java.util.*;public class 마라톤1_10655 {    public static void main(String[] args) throws Exception {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));                // 체크포인트 입력받기        int N = Integer.parseInt(br.readLine());        int cp[][] = new int[N][2];        for(int i = 0; i N; i++) {            StringTokenizer st = new StringToken..

[Baekjoon 1913 / Java / 실버3] 달팽이

import java.io.*;public class 달팽이_1913 {    public static void main(String[] args) throws Exception {                StringBuilder sb = new StringBuilder();                // 입력받기        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        int N = Integer.parseInt(br.readLine());        int target = Integer.parseInt(br.readLine());        // 2차원 배열 생성        int board..

728x90
반응형