본문 바로가기

(385)
[Python] 1384번 메시지 https://www.acmicpc.net/problem/1384 1384번: 메시지 그룹 번호를 "Group 1"과 같이 출력함으로써 출력을 시작합니다. 그 다음 줄부터 누가(A) 누구(B)에게 나쁜 말을 했는지 "A was nasty about B"로 한 줄씩 출력합니다. 나쁜 말이 여러 개라면, 입력받은 순 www.acmicpc.net 22/09/16 맨 처음에 예제가 이해가 잘 가지 않았던 문제로, 게시판을 보고 이해할 수 있었다. 이 문제를 보고 앞으론 문제의 지문을 잘 읽어야겠다는 생각을 하게 되었다.... 문제 접근 방식: 누가 누구에게 나쁜말을 했는지 순서대로 출력하면 되는 문제이다. 예제를 보면 이해가 쉬운데, 예제 입력과 출력을 보자. Ann P N P P Bob P P P P Cliv..
[Python] 1380번 귀걸이 https://www.acmicpc.net/problem/1380 1380번: 귀걸이 입력은 번호를 가진 시나리오들로 구성됩니다. 시나리오 번호는 1부터 순서대로 증가하고, 각 시나리오는 아래의 내용을 포함합니다. 한 줄에 귀걸이를 압수당한 여학생의 수, n (1 ≤ n ≤ 100)이 www.acmicpc.net 22/09/16 마찬가지로 실버 5를 밀던 도중 만난 문제로, 개인적으로 문제의 입력이 이해가 되지 않았던 문제였다. 문제 접근 방식: 테스트 케이스 하나당 여학생 수가 주어지고, 여학생들이 주어진다.(여학생들의 리스트가 주어진 순서대로 여학생들을 번호로 간주한다.) 이후 여학생들이 목걸이를 빼앗겼다가 다시 되찾는 것을 숫자와 A 또는 B로 구분하여 준다. 숫자가 처음 나오는 것이면 빼앗기는 것..
[Python] 1340번 연도 진행바 https://www.acmicpc.net/problem/1340 1340번: 연도 진행바 평년일 때, 각 달은 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31일이 있다. 윤년에는 2월이 29일이다. 윤년은 그 해가 400으로 나누어 떨어지는 해 이거나, 4로 나누어 떨어지면서, 100으로 나누어 떨어지지 www.acmicpc.net 22/09/16 이 문제 또한 실버 5 밀기 중 만난 문제로, 실버 5치고는 재미있게 풀었던 문제였다.(난이도가 살짝 높지만, 실버 4 수준 정도는 아니라는 뜻) 문제 접근 방식: 날짜를 입력 받으면, 그 년도를 기준으로 하여 현재 날짜가 몇 퍼센트 지나갔는지를 출력하는 간단한 문제이다. 이 문제에선 윤년을 판단해야만 했기 때문에 cale..
[Python] 18155번 Issuing Plates https://www.acmicpc.net/problem/18155 18155번: Issuing Plates Your output will be M lines, one per plate, in the same order as the plates are given on the input. If the plate is valid, write out the string ‘VALID’; otherwise write out the string ‘INVALID’. www.acmicpc.net 22/09/16 실버 5 밀기에 도전해보고자 하여 순서대로 밀던 중 만난 문제이다. 간단한 문자열 문제로, 쉽게 풀 수 있었다. 문제 접근 방식: 문제는 굉장히 간단한데, N개의 문자열 세트와 판별해야 할 M개의 문자열 쿼리가..
[Python] 1308번 D-Day https://www.acmicpc.net/problem/1308 1308번: D-Day 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다. www.acmicpc.net 22/09/16 간단한 구현 문제로, 프로그래밍 기초를 배우면 자주 접하는 윤년 판단 문제가 응용된 문제이다. 문제 접근 방식: 파이썬의 datetime모듈을 사용하여 구현하였다. 1000년을 넘어가면 'gg'를 출력해야 하므로 그 부분은 따로 처리를 먼저 해주었고, 나는 윤년 처리가 귀찮았기 때문에 datetime의 toordinal 메서드를 활용하였다. 이 메서드는 1년 1..
[Python] 2057번 팩토리얼 분해 https://www.acmicpc.net/problem/2057 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 22/09/15 같은 그룹원에게 추천받아서 풀었던 그리디 문제인데, (그리디인 줄 모르고 풀었었다) 접근방법을 틀리게 할 때가 많았던 문제이다. 역시 그리디는 그리디인줄 모르고 풀어야 그 진정한 어려움을 알 수 있다고 했던가, 정말 힘들었다. 이후에 브루트 포스로 풀 수 있다는 것을 깨닫고, 조금 허탈함을 느끼긴 했다. 문제 접근 방식: 맨 처음에 접근 할 때 잘 모르겠어서 그룹..
[Python] 4948번 베르트랑 공준 https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 22/09/15 마찬가지로 그룹 채점 현황에 있는 무작위 문제 중 한 문제를 푼 것으로, 기존에 있던 에라토스테네스의 체 코드를 재활용하여 문제를 쉽게 풀었다. 문제 접근 방식: 문제가 n을 입력받으면 n과 2n 사이에 있는 소수의 개수를 출력하는 것이 문제이므로, 에라토스테네스의 체를 구현하면 될 것이라고 생각했다. 에라토스테네스의 체는 다음과 같이 구현했다. 먼저 크기가 정해진 배열을 ..
[Python] 5637번 가장 긴 단어 https://www.acmicpc.net/problem/5637 5637번: 가장 긴 단어 단어는 알파벳(a-z, A-Z)과 하이픈(-)으로만 이루어져 있다. 단어와 다른 문자(마침표, 숫자, 심볼, 등등등...)로 이루어진 글이 주어졌을 때, 가장 긴 단어를 구하는 프로그램을 작성하시오. Apple의 www.acmicpc.net 22/09/14 그룹 채점 현황에 있는 무작위 문제를 풀었다. 어렵지 않은 실버 문제였다. 다만, 정규표현식을 사용하여 문제를 해결하지는 않았다. 문제 접근 방식: 태그랑은 조금 다르게 그냥 구현했는데, 일단 E-N-D가 나올 때까지 반복 입력받으므로 while문을 사용했다. 단어들을 모아놓는 words리스트를 먼저 선언했다. 이후 입력 받을 때마다 그 줄을 공백으로 분리하여..