728x90
반응형

Algorithm/Implementation 8

[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 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 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..

[Baekjoon 3190 / python / 골드4] 뱀

import sys from collections import deque n = int(sys.stdin.readline()) # 보드의 크기 k = int(sys.stdin.readline()) # 사과의 개수 apple = [list(map(int, sys.stdin.readline().split())) for _ in range(k)] # 사과의 위치 l = int(sys.stdin.readline()) # 방향 전환 횟수 change = [] for _ in range(l): changeSec, changeDir = input().split() changeSec = int(changeSec) change.append([changeSec, changeDir]) # 초, 방향을 입력받되, 초는 int..

728x90
반응형