Meda의 DevLog
close
프로필 배경
프로필 로고

Meda의 DevLog

  • 분류 전체보기 (62)
    • 알고리즘 (48)
      • 프로그래머스 문제 풀이 전략 (26)
      • 백준 (18)
      • SWEA (4)
    • 우테코 (6)
      • 기타 (0)
    • 스터디 (5)
      • 코틀린 (5)
    • 빅데이터분석기사 (2)
    • 기타 정보 (1)
    • 잡담 (0)
  • 홈
  • 태그
  • 방명록
  • Github
[백준/Python] 21314번. 민겸 수

[백준/Python] 21314번. 민겸 수

문제 https://www.acmicpc.net/problem/21314   풀이우선 "민겸 수"와 "민겸 숫자"는 다른 개념이다. 민겸 숫자가 모이면 민겸 수가 되는것에 주의하자최소 최대값 모두 MK / K / MMK와 같이 K가 나올때까지 M의 갯수를 센다 최대값을 찾는법: K가 나올 경우 K까지 포함하여 끊어서 해당하는 민겸숫자를 문제에 제시된 변환 표 대로 변환하여 이어준다.끊어낸 마지막 덩어리가 M으로 끝날 경우 M의 갯수만큼 1로 채운 값을 이어준다.  최소값을 찾는법:K가 나올 경우 K를 포함하지 않고 끊어서 해당하는 민겸숫자를 문제에 제시된 변환 표 대로 변환하여 이어준다.(MMK와 같이 끊어진 경우 K를 포함하지 않고 MM까지만 변환)그 이후 K를 포함하지 않고 끊었으므로 K의 민겸숫자에..

  • format_list_bulleted 알고리즘/백준
  • · 2024. 11. 17.
  • textsms
[백준/Python] 20300번. 서강근육맨

[백준/Python] 20300번. 서강근육맨

문제https://www.acmicpc.net/problem/20300   풀이가장 큰 값과 가장 작은 값을 취하면 되는 그리디 문제이다.정렬한다최대 근손실을 홀수면 가장 큰수를 pop해서 초기화하고 짝수면 0으로 초기화한다남은 수중 가장 큰 값, 가장 작은 값을 을 pop해서 더한 값이 최대 근손실보다 크면 교체한다남은 수가 없어질 때까지 3번을 반복한뒤 최대 근손실을 출력한다참 쉽죠?  정답 코드from collections import dequeN = int(input())M = list(map(int, input().split()))M.sort()M = deque(M)maxM = 0if len(M) % 2 != 0: maxM = M.pop()while len(M) > 0: m = M.p..

  • format_list_bulleted 알고리즘/백준
  • · 2024. 11. 17.
  • textsms
[백준/Python] 1027번. 고층 건물

[백준/Python] 1027번. 고층 건물

문제https://www.acmicpc.net/problem/1027  사고 과정처음에는 서로 보이는지 판단할 두 빌딩 사이의 모든 빌딩이 두 빌딩의 높이보다  낮은 경우를 구하면 되지 않을까 싶었다.하지만 이 그림과 같이 1, 3 두 빌딩 사이의 빌딩 2번은 3번보다 높은데도 불구하고 1과 3 빌딩은 서로를 볼 수 있어서 정답이 아니었다.두번째로 사이의 빌딩들의 제한높이를 두 빌딩 의 높이의 차이를 이용해 수동으로 구하는 방법을 생각했는데1과 4 사이의 높이 차이는 6이며 사이의 빌딩은 2개이므로 아래와 같이높이의 차이를 2개로 쪼개 3등분한 값을 더해가며 제한 높이를 수동으로 구하여 풀어보았는데이론상 정답인것 같으나 부동소숫점 연산의 부정확성 문제 추측되는 이유로 틀렸다.  풀이따라서 아래와 같이 두..

  • format_list_bulleted 알고리즘/백준
  • · 2024. 11. 17.
  • textsms
[백준/Python] 9935번. 문자열 폭발

[백준/Python] 9935번. 문자열 폭발

문제https://www.acmicpc.net/problem/9935  풀이문자열에서 폭발 문자열이 없어질때까지 반복해서 찾아 지워나간다면 이론적으로 풀리기야 하겠지만 시간이 초과된다. 스택을 이용하면 전체 문자열에서 폭발 문자열을 찾는데 소요되는 시간, 문자열에서 폭발문자열을 반복하며 도려내어 새로운 문자열을 만드는 시간을 단축하여 빠르게 해결이 가능하다. 문자열을 앞에서부터 한글자씩 끝까지 순회하며 스택에 push하면서 스택의 윗부분과 폭발 문자열이 일치한다면 폭발 문자열의 길이만큼 pop해주기만 하면 한번의 순회로 쉽게 해결이 가능하다.    정답 코드msg = input()bomb = list(input())answerStack = []for letter in msg: answerStack...

  • format_list_bulleted 알고리즘/백준
  • · 2024. 11. 15.
  • textsms
[백준/Python] 1213번. 팰린드롬 만들기

[백준/Python] 1213번. 팰린드롬 만들기

문제https://www.acmicpc.net/problem/1213  풀이팰린드롬 문자열을 구성하려면 문자중 단 하나만 홀수개 사용할 수 있으며 정 가운데 입력된다,이 외의 다른 문자들은 짝수개 존재해야 팰린드롬 문자열로 구성이 가능하다. 문자별 등장 횟수를 딕셔너리로 저장하고, 홀수번 등장하는 문자를 기록하고 알파벳 순서대로 정렬하여 짝수번 등장하는 문자의 절반을 출력, 홀수번 등장하는 문자 출력, 짝수번 등장하는 문자의 절반을 뒤집어 출력하여 회문을 완성한다.이때 홀수번 등장하는 문자가 1개를 초과하면 팰린드롬이 불가하므로 한수에게 사과를 전하자.    정답 코드from collections import defaultdicthansooEngName = input()alphaDict = default..

  • format_list_bulleted 알고리즘/백준
  • · 2024. 11. 15.
  • textsms
[백준/Python] 17413번. 단어 뒤집기 2

[백준/Python] 17413번. 단어 뒤집기 2

문제https://www.acmicpc.net/problem/17413   풀이조건이 약간 까다로운 단순 구현 문제다 0부터 인덱스를 증가해가며 문자열 끝까지 검사하되의 다음 인덱스까지 인덱스를 증가시키고 해당 범위를 정답 리스트에 추가하고공백이 나오면 인덱스를 1 증가하여 다음 인덱스를 가리키고 공백을 정답 리스트에 추가하고그 밖의 다른게 나오면 문자나 숫자이므로 문자열의 끝을 만나거나 문자나 숫자가 아닐때까지 인덱스를 증가시키고 해당 범위를 뒤집어 정답 리스트에 추가하고정답 리스트를 join해서 출력하면 된다. 파이썬에서 "문자열[::-1]"을 통해 문자열을 쉽게 뒤집을 수 있다.::로 모든 문자열을 -1 만큼의 증가폭을 가지고 출력하므로 뒤집힌다파이썬에서 문자인지 검사할땐 isalpha(), 숫자인..

  • format_list_bulleted 알고리즘/백준
  • · 2024. 11. 15.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (62)
    • 알고리즘 (48)
      • 프로그래머스 문제 풀이 전략 (26)
      • 백준 (18)
      • SWEA (4)
    • 우테코 (6)
      • 기타 (0)
    • 스터디 (5)
      • 코틀린 (5)
    • 빅데이터분석기사 (2)
    • 기타 정보 (1)
    • 잡담 (0)
최근 글
인기 글
최근 댓글
태그
  • #프로그래머스
  • #프로그래밍
  • #파이썬
  • #Kotlin
  • #알고리즘
  • #백준
  • #Python
  • #티스토리챌린지
  • #오블완
  • #문자열
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바