티스토리

다시 시작
검색하기

블로그 홈

다시 시작

bbugiho.tistory.com/m

bbugi 님의 블로그입니다.

구독자
5
방명록 방문하기

주요 글 목록

  • [python/파이썬] 백준 13900 - 순서쌍의 곱의 합 (실4) https://www.acmicpc.net/problem/13900 13900번: 순서쌍의 곱의 합 첫 번째 줄에는 입력 받을 정수의 개수 N(2 ≤ N ≤ 100,000) 두 번째 줄에는 N 개의 정수가 주어진다. 이때 입력 받는 정수들의 범위는 0이상 10,000 이하이다. www.acmicpc.net 시간복잡도 - 풀이를 바꿔가면서 풀어봤는데도 계속해서 시간초과가 발생하여 챗gpt한테 물어봤다. for 문법 → O(N) sum(list) 연산 → O(N) for문 안에서 sum(list) 연산을 반복하면 → O(N^2) 쓸데없이 반복하던 연산을 없애고, 한 번만 계산하여 변수에 저장하여 활용하는 방식을 알려줘서 해당 방법대로 다시 접근하여 풀어봄 [풀이 과정 - 통과한 코드] ''' 풀이 6. su.. 공감수 1 댓글수 0 2023. 8. 2.
  • [python/파이썬] 백준 11005 - 진법 변환 2 (브1) https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 수학 개념 구현 --- 음.. 기본적인 수학 개념으로 푸는 문제였지만, N진수에 대한 개념이 부족한 나를 위해 정리함 10진수를 N진수로 변환하는 과정은 10진수의 수를 N으로 나누어 나오는 나머지를 연산의 역순(가장 마지막의 수가 가장 앞에 온다)으로 나열하면 됨 (이 간단한 개념을 헷갈려 했다는게 너무 부끄럽...) --- [ 사용한 함수 ] - list.insert(값을 넣을 위치_인덱.. 공감수 0 댓글수 0 2023. 7. 21.
  • [python/파이썬] 백준 1874 - 스택 수열 (실2) https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 자료구조 - 스택(stack) --- 수많은 오답의 향연.. python으로 풀었을 때 시간초과 잡는 법 새로 공부하기 (pypy3로 통과 얌시 씀) 그런데 틀렸다고 한 것도 결과값에 NO라고 출력해야 하는걸 대충보고 no라고 써서 그런 것 어쩐지 반례를 아무리 넣어도 vscode에서는 전부 정답으로 나오더라니.. .. 공감수 0 댓글수 0 2023. 7. 20.
  • [python/파이썬] 백준 4949 - 균형잡힌 세상 (실4) https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 자료구조 - 스택(stack) + 정규표현식 --- 1. 스택(리스트)의 인덱스 슬라이싱 범위 제대로 이해하기 2. 문제 제대로 이해하기 처음엔 괄호, 대괄호를 구분하여 각자의 쌍이 맞으면 된다고 접근했으나, 한 문장 안에서 쌍이 맞아야 함. (), [] 만 인정되고, 똑같은 구성이더라도 (], [) 이면 틀린 것 3. stack이 후입선출 이므로 괄호를 넣으면서 쌍을 이루면.. 공감수 0 댓글수 1 2023. 7. 19.
  • [python/파이썬] 백준 1966 - 프린터 큐 (실3) https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 자료구조 - 큐(queue) 파이썬에서 자료형 큐를 사용할때는 deque 로 사용하면 된다. deque는 collections 라이브러리에 내장되어 있어 from collections import deque로 사용 가능하다. - queue는 '선'입 '선'출 형태 자료구조이고, deque의 경우 양방향 큐로 선입,후입 어느쪽으로든 뺄 수 있다. --- deque는 rotate(회전)이 가능한데 음수를.. 공감수 2 댓글수 1 2023. 7. 17.
  • [JAVA/자바] 백준 15552 - 빠른 A+B(브4) https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 프로그래밍 언어별 빠른 입출력 방법 (조금 더 공부가 필요함) python java import sys input = sys.stdin.readline import java.io.*; BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamW.. 공감수 2 댓글수 1 2023. 4. 30.
  • [JAVA/자바] 백준 25314 - 코딩은 체육과목 입니다(브5) https://www.acmicpc.net/problem/25314 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net JAVA에서 문자열 반복하여 출력하기 "반복할 문자열".repeat(숫자) 을 사용하여 java에서 문자열을 해당 숫자만큼 반복하여 출력할 수 있다. [정답 코드] import java.util.*; public class Ex_25314 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); i.. 공감수 1 댓글수 0 2023. 4. 30.
  • [python/파이썬] 백준 2775 - 부녀회장이 될테야(브1) https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 다이나믹 프로그래밍 다이나믹 프로그래밍 : 필요한 계산 값을 저장해두었다가 재사용 하는 알고리즘 설계 기법 ● top-down 방식 큰 문제부터 시작해서 작은 문제로 분할해 가면서 푸는 것 ● bottom-up 방식 작은 문제부터 시작해서 작은 문제를 점점 쌓아 큰 문제를 푸는 것 ● 메모이제이션(캐싱) 동일한 계산을 반복해야 할 경우 한 번 계산한 결과를 메모리에 저장해 두었다가 꺼내 씀으로써 중복 계산을 방지할 수 있게 하는 기법 메.. 공감수 1 댓글수 1 2023. 1. 29.
  • [python/파이썬] 백준 10828 - 스택(실4) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 자료구조 - 스택(stack) 파이썬에서는 따로 stack이라는 라이브러리? 모듈은 없고, 리스트를 사용하면 된다. stack은 '후'입'선'출 형태의 자료구조이며, 차곡차곡 쌓인 것을 위에서부터 덜어낸다고 생각하면 된다. --- 문제를 풀 때 함수(def)를 만들거나, class를 생성하여 작성하고 싶었는데 가변적인 파라미터를 받을 때 적용 방법이나, class 생성 등에서 부.. 공감수 1 댓글수 0 2023. 1. 18.
  • [python/파이썬] 백준 2669 -직사각형 네개의 합집합의 면적 구하기(브1) / 2563 - 색종이(실5) https://www.acmicpc.net/problem/2669 2669번: 직사각형 네개의 합집합의 면적 구하기 평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으 www.acmicpc.net https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net 그래프 위의 면적 구하기 (구현) --- 2669번과 2563번 문제 접근.. 공감수 1 댓글수 0 2023. 1. 17.
  • [python/파이썬] 백준 4673 - 셀프 넘버(실5) https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 단계별로 풀어보기 - 함수 브루트포스 알고리즘(완전탐색) 분해합 문제와 동일한 알고리즘 사용 분해합, 생성자, 셀프 넘버의 개념은 이해하였으나 입력값 없이 10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 코드를 짜는데에 시간을 많이 썼다. for문과 if문을 어떻게 연결해야하는지에서 고민 num(분해합 저장한 변수)를 지정한 식에 .. 공감수 0 댓글수 0 2023. 1. 15.
  • [python/파이썬] 백준 2161 - 카드1(실5) https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 자료구조 문제 - queue / deque 사용하기 import sys from collections import deque input = sys.stdin.readline n = int(input()) q = deque( i for i in range(1,n+1)) q_list = [] for i in range(n): # print(i) q_list.append(q.popleft()) if l.. 공감수 0 댓글수 0 2023. 1. 15.
  • [python/파이썬] 백준 10814 - 나이순 정렬(실5) https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 리스트 정렬하기 두가지 형태의 인자를 받을 때 str로 받았다가 append할 때 데이터 형태 바꿔서 넣기 x, y = list(map(str, input().split())) m_list.append([int(x), y]) [문제 풀이] import sys input = sys.stdin.readline n = int(input()) m_list = [] for _ in range(n): x, y =.. 공감수 0 댓글수 0 2023. 1. 15.
  • [python/파이썬] 백준 11650 - 좌표 정렬하기(실5) https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 리스트 정렬하기 - 리스트 인자가 여러개일 때 정렬 sorted 의 key lambda를 통해 인자 순서별 정렬이 가능함. lst = [(1,0), (2,4), (5,3), (1,6), (2,3)] # 첫번째 인자 기준으로 정렬 sorted( 리스트, key = lambda x : x[0] ) > [(1, 0), (1, 6), (2, 4), (.. 공감수 0 댓글수 0 2023. 1. 15.
  • [python/파이썬] 백준 5597 - 과제 안 내신 분..?(브5) https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 단계별로 풀어보기 - 1차원 배열 - 문제에서 정해진 범위가 있고, 그 안에 연속적인 숫자로만 이루어져 있음 출석번호를 하나의 리스트로 생성 제출한 학생의 번호를 리스트에서 삭제하는 명령어로 제거 '리스트.remove(리스트 안에서 지우려는 수)' - 리스트 안의 원소를 반환할 때 리스트 앞에 *(애스터리스크)를 사용하면 리스트 원소를 하나씩 뽑아서 반환해준다. # *리스트 : 어퍼스.. 공감수 1 댓글수 0 2023. 1. 11.
  • [python/파이썬] 백준 2562 - 최댓값(브3) https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 단계별로 풀어보기 - 1차원 배열 리스트 안의 최댓값 구하기 리스트에서 해당하는 값의 인덱스 번호 구하기 import sys input = sys.stdin.readline nums =[] for i in range(9): nums.append(int(input())) print(max(nums), (nums.index(max(nums))+1)) 공감수 1 댓글수 0 2023. 1. 10.
  • [python/파이썬] 백준 10818 - 최소, 최대(브3) https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 단계별로 풀어보기 - 1차원 배열 리스트 내의 최소값, 최대값 찾기 import sys input = sys.stdin.readline n = int(input()) nums = list(map(int, input().split())) def min_max(n, nums): print(min(nums), max(nums)) min_max(n, nums) 공감수 1 댓글수 0 2023. 1. 10.
  • [python/파이썬] 백준 10871 - X보다 작은 수(브5) https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 단계별로 풀어보기 - 1차원 배열 리스트 인덱싱 문제 import sys input = sys.stdin.readline n, x= map(int, input().split()) v = list(map(int, input().split())) def small_x(n, x, v): for i in range(len(v)): if x > v[i]: print(v[i], end=' '.. 공감수 1 댓글수 0 2023. 1. 10.
  • [python/파이썬] 백준 10807 - 개수 세기(브5) https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 단계별로 풀어보기 - 1차원 배열 리스트 안에서 특정 값의 개수 구하기 import sys input = sys.stdin.readline n = int(input()) b = list(map(int, input().split())) v = int(input()) def search_num(n, b, v): return(b.count(v)) print(search_num(n, b, v)) 공감수 1 댓글수 0 2023. 1. 10.
  • [python/파이썬] 백준 13458 - 시험 감독(브2) https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 예제는 통과됐는데 계속해서 틀렸다고 나와서 고민한 문제 문제의 요점을 잘 파악하지 못 한 듯? 어쨋든 수정하는 과정을 통해 문제 해결은 했다! # 백준 제출 코드 -3번째 풀이 import sys input = sys.stdin.readline n = int(input()) test_p = list(map(int, input().split(.. 공감수 1 댓글수 0 2023. 1. 10.
  • [python/파이썬] 백준 1110 - 더하기 사이클(브1) https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 단계별로 풀어보기 - 반복문 12번째 문제 파이썬 프로그램에서 풀이 시 정답 나옴. 백준에서 제출 시 시간초과 출력... 해결책 찾아야 함 (해결완료) --- 문자열 리스트를 통한 풀이가 시간이 오래 걸리는 듯?? 자리수 계산으로 풀이해야할 때는 // , % 등을 사용하는 습관을 만들자! [백준 제출 풀이] import sys input = sys.stdin.readline n = .. 공감수 1 댓글수 0 2023. 1. 9.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.