공부하기 509

[Python] 백준 풀기 5635 - 생일

파이썬 백준 5635번 실버 5 https://www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현, 문자열, 정렬 문제 풀기 분할되어있는 일, 월, 년 숫자를 공백없이 년월일(20221227) 8자리 숫자로 붙이고 이름과 함께 리스트에 저장한다. 문자형 숫자로 된 생일을 정렬하여 가장 나이가 많은 사람, 가장 나이가 적은 사람을 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnRearrange(): restdt_info = [] if len(stdt_info[..

공부하기/백준 2022.12.27

[Java 복습] 단순한 성적 관리 CLI

코드가 while 로 지속적으로 실행되는 과정에서 선택지의 번호를 입력받고 그에 해당하는 데이터를 출력해 주는 프로그램이다. CLI 상태에서 작동하며 선택지가 아닌 입력에 대해 예외처리가 적용되지 않았지만 현재 나의 수준에서 작성된 코드를 더욱 지저분하게 만들고 싶지 않아 여기서 만족하려 한다. while, switch, function(array), for each, scanner 등등 적용해 볼 수 있는 기회였다. import java.util.Scanner; public class MainClass { static boolean isLoop = true; static String subjName; static String studentName; public static void main(String..

[Python] 백준 풀기 1475 - 방 번호

파이썬 백준 1475번 실버 5 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 6 과 9 는 같은 번호로 생각하여 한가지로 통일 시킨다. 입력된 방 번호를 리스트에 저장하고 하나씩 순차적으로 빼내어 리스트 sign_ls 의 index 에 맞춰 카운트 한다. 세트 하나 당 6 이 두 개 들어 있기에 sign_ls[6] = (sign_ls[6] + 1) // 2 로 세트의 개수를 맞추고, 최종 저장된 sign_ls 의 value 중 최대값을 출력한다. 코드 보기 import sys inputdata = sys...

공부하기/백준 2022.12.26

[Python] 백준 풀기 5800 - 성적 통계

파이썬 백준 5800번 실버 5 https://www.acmicpc.net/problem/5800 5800번: 성적 통계 첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 www.acmicpc.net 문제 보기 분류: 구현, 정렬 문제 풀기 두번째 줄부터 학생수와 점수를 같이 입력을 받기 때문에 deque() 를 이용하여 제일 왼쪽 학생수를 제거한다. deque() 를 정렬하기 위해 list() 함수를 이용하여 변환하고 sort(reverse = True) 를 이용하여 내림차순 정렬을 한다. 내림차순 정렬으로 Max 와 Min 의 값..

공부하기/백준 2022.12.25

[Python] 백준 풀기 1316 - 그룹 단어 체커

파이썬 백준 1316번 실버 5 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 맨 왼쪽 문자를 빼내고 그 다음 문자와 비교한다. 서로 같은 문자이면 일단 조건문을 통과하고, 만약 다른 문자가 나올때 그 남은 문자 묶음에서 빼어낸 문자가 있는지 확인한다. 있다면 return 0 으로 함수를 종료한다. word 의 단어가 1개 남을때까지 조건 (그룹 단어가 안되는 조건) ..

공부하기/백준 2022.12.24

[Python] 백준 풀기 2720 - 세탁소 사장 동혁

파이썬 백준 2720번 브론즈 3 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 사칙연산 문제 풀기 각각의 동전에 대해 몫과 나머지를 구하는 방법으로 해결한다. 주어진 입력값인 거스름돈에 대해 제일 큰 숫자인 25센트부터 몫을 구하고 그 나머지를 다음 연산 거스름돈으로 보낸다. 이 과정을 10센트, 5센트 그리고 1센트에 반복 적용하여 각각의 계산 결과 몫이 나타내는 동전의 개수를 출력한다. 코드 보기 import sys inputdata = sys.stdin.readl..

공부하기/백준 2022.12.23

[Python] 백준 풀기 14719 - 빗물

파이썬 백준 14719번 골드 5 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제 보기 분류: 구현, 시뮬레이션 문제 풀기 맨 아래 블록을 한 줄씩 제거해가며 그 라인에 물이 담긴 사각형의 개수를 누적하여 더한다. 블록이 저장된 리스트를 왼쪽에서 오른쪽으로 관찰을 진행하며 블록이 있는 곳에서 없는 곳으로 바뀌는 조건 if block_ls[i] != block_ls[i - 1] and block_ls[i] == 0: 을 찾..

공부하기/백준 2022.12.22

[Python] 백준 풀기 1439 - 뒤집기

파이썬 백준 1439번 실버 5 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 보기 분류: 문자열, 그리디 알고리즘 문제 풀기 0 과 1 조합의 숫자들을 리스트에 각각 입력받는다. 숫자들의 맨 앞과 맨 끝의 수가 같은지 확인을 한다. 만약, 같다면 그 반대되는 수를 기준으로 하여 check 에 저장해 둔다. 이때, count 는 0 으로 시작. 숫자들의 맨 앞과 맨 끝의 수가 다르다면, 첫 수와 반대되는 수를 check 에 저장한다. 이..

공부하기/백준 2022.12.21

[Python] 백준 풀기 11656 - 접미사 배열

파이썬 백준 11656번 실버 4 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제 보기 분류: 문자열, 정렬 문제 풀기 생성된 접미사를 저장할 리스트 s_ls 생성하고 첫 문자 s 를 저장한다. s 의 문자 길이 - 1 만큼 for loop 을 실행하고, 이때 문자의 맨 앞자리를 하나씩 제거하고 이를 리스트에 누적 시킨다. 사전순으로 정렬하기 위해 sort() 함수를 이용하여 정렬을 한 후, 순서대로 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnSuffix..

공부하기/백준 2022.12.20

[Java 복습] 프린트 그리고 변수

자바 과정을 시작하였다. 맥북에서 사용하는 이클립스는 별로 마음에 들지 않는다. 특히, 한글 주석을 입력할 때 마지막 글자가 씹히는 현상이 발생한다. 검색을 해보니 원래 그렇단다. 맥북을 사용하다 보면 한글 입력 완성에 그다지 신경을 쓰지 않는 것이 너무 뻔하게 보여 맥북의 문제가 첫 번째 원인이지만 다른 프로그램들은 이를 어떻게든 해결해준 모습을 보면 또 한편으로는 이클립스가 별로인지도.. (영어로 적으라는 큰 가르침인가) 자바는 17.0.5 버전을 설치하였고, 이클립스는 2021-12 버전을 설치하였다. https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html Java Archive Downloads - Java SE 1..