전체 글 573

[Python] 백준 풀기 11655 - ROT13

파이썬 백준 11655번 브론즈 1 https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 개별 알파벳 문자를 ASCII 코드와 대응하는 10진수로 변환한다. 변환된 숫자로 기준이될 10진수 위치를 0에 고정하여 +13 쉬프트 시키고 26으로 나눈 나머지를 통해 Z 이후의 알파벳의 숫자를 재조정한다. c = ((c - 65) + 13) % 26 + 65 c = ((c - 97) + 13) % 26 + 97 10진수를 다시 알파벳으로 변환하고 합쳐 출력한다. input() 을 이용..

공부하기/백준 2022.12.30

[Python] 백준 풀기 2941 - 크로아티아 알파벳

파이썬 백준 2941번 실버 5 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 크로아티아 알파벳을 리스트에 저장한 후 하나씩 뽑아 주어진 단어에서 해당 문자열을 찾는다. 함수 replace() 를 이용하여 크로아티아 알파벳을 단일 특수 문자로 변환 시킨다. 일반 알파벳과 단일 특수문자인 @ 으로 새로이 작성된 단어의 길이를 구해 총 알파벳의 개수를 출력한다. 코드..

공부하기/백준 2022.12.29

[Python] 백준 풀기 1453 - 피시방 알바

파이썬 백준 1453번 브론즈 2 https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 리스트로 100개의 컴퓨터 자리를 0으로 초기화 하여 생성한다. 손님이 원하는 자리의 index가 0으로 되었있으면 빈 자리이기에 1로 바꾸어 준다. 만약 손님이 원하는 자리가 0이 아닌 1로 되어있을 경우 변수 count를 하나씩 올려준다. 코드 보기 import sys inputdata = sys.stdin.readline def fnNumberOfRejectio..

공부하기/백준 2022.12.28

[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] 파일 상대경로 설정 (Relative Path on Mac)

맥 환경에서 PrintWriter 을 이용하여 절대경로와 상대경로에 파일을 생성하고 그 경로의 차이를 예시로 확인한다. 절대경로 File f = new File("/Users/apple/java/01_test/newFile01.txt"); 기본적으로 맥에서 절대경로는 Users 에서 부터 시작된다. 윈도우로 보자면 C: 맥에서 절대경로로 파일에 접근하려면 "/Users/{account name}/files/01_test/newFile01.txt" 형식으로 작성해야 한다. 절대경로는 Finder 에서 Get info 등을 이용하여 나타나는 경로를 복사 붙여넣기 하면 간단히 해결된다. 이 절대경로를 이용하여 "newFile01.txt" 파일을 생성하였다. 프로젝트 위치 File f = new File("ne..

알아가기/Java 2022.12.27

[Java] 잘못된 입력에 대해 exception 으로 재입력 유도

while 그리고 exception 사용자의 입력을 받을 때 프로그램이 정상적으로 작동하기 위한 조건에 맞지 않는 입력이 들어오면 exception 을 사용하여 재 입력을 유도한다. 이를 위해 while 과 try 그리고 continue 를 이용할 수 있다. 예를 들어 사용해 보면, 입력은 숫자만 받아야 하는 조건이 있다. 숫자인지 문자인지 일단 입력받고 판별하기 위해 모든 입력을 문자로 입력받는다. 그리고 이를 숫자형으로 변환하는 과정에서 try 와 catch 를 사용하고 숫자가 맞다면 실행되고 있는 while loop 를 break 로 빠져나간다. 하지만, 입력 데이터에 문자가 섞여 있다면 catch exception 으로 분류되어 메시지가 출력되고 continue 를 만나게 되어 break 가 실행..

알아가기/Java 2022.12.26

[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