728x90
반응형

코딩테스트 86

백준 2018번 문제(수들의 합 5) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def solve(): n = int(input()) cnt = 0 for i in range(1, n+1): s = 0 for j in range(i, n+1): s += j if s == n: cnt += 1 break elif s > n: break print(cnt) sol..

백준 1976번 문제(여행 가자) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 def find(i, rst): if rst[i] != i: rst[i] = find(rst[i], rst) return rst[i] def union(i, j, rst): x = find(i, rst) y = fin..

백준 1546번 문제(평균) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 n = int(input()) arr = [int(x) for x in input().split()] M = max(arr) s = 0 for item in arr: s += ((item/M) * 100) print(s/n) cs 모든 값에 대해서 특정한 연산을 적용하고 평균을 구하는 문제입니다. 요구하는대로 특정한 연산을 적용하고 평균을 ..

백준 1504번 문제(특정한 최단 경로) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 import sys import math import heapq def dijkstra(graph, n, source, sink1, sink2):..

백준 1463번 문제(1로 만들기) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import math def solve(): n = int(input()) arr = [0, 0, 1, 1] for i in range(4, n+1): one, two, three = math.inf, math.inf, arr[i-1] if i % 3 == 0: one = arr[i//3] if i % 2 == 0: two = arr[i//2] value = 1 + min(one, two, three) arr...

백준 1298번 문제(노트북의 주인을 찾아서) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1298 1298번: 노트북의 주인을 찾아서 어느 날 모든 학생들은 한 명이 한개의 노트북을 가지고 공부하던 도중, 자리를 바꾸다가 그만 노트북이 뒤섞이고 말았다. 대다수의 학생들은 자신의 노트북을 잘 알고 있어서 자신의 노트북을 www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 import sys import collections import math SOURCE =..

백준 1181번 문제(단어 정렬) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/bin/python3 N = 51 def solve(): n = int(input()) arr = [set() for _ in range(N)] for _ in range(n): a = input() arr[len(a)].add(a) for i in range(N): for item i..

백준 1157번 문제(단어 공부) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 def solve(): s = input() s = s.upper() hist = {} for c in s: if c in hist.keys(): hist[c] += 1 else: hist[c] = 1 big = 0 for key in hist.keys(): big = max(big, hist..

백준 1152번 문제(단어의 개수) 파이썬(Python) 풀이 [로밍맨]

문제 링크 www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net 정답 코드는 아래와 같습니다. 1 2 s = input().split() print(len(s)) cs 일반적으로 입력 받을 때 사용하는 split 함수를 이용하여 배열에 저장하게 되면 그 배열의 길이 자체가 단어의 갯수가 된다는 특성을 이용한 풀이입니다. 풀이는 아래 영상을 참고 바랍니다. www.youtube.com/watch?v=En4_uZcS_eY 저작권 라이선스: CC BY (출처만 표시..

728x90
반응형