반응형

Algorithm/백준 209

[백준 알고리즘] 25206번: 너의 평점은 (Python)

https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 소스코드 풀이 if ~ else 문을 사용해서 풀 수도 있는 문제이지만 그럼 코드의 가독성도 떨어지고 복잡하게 됩니다 ! 그래서 딕셔너리를 사용하는 것을 추천드립니다. 평점을 딕셔너리로 만들고, 입력 값의 등급이 P가 아니라면 score 변수에 학점과 평점을 곱한 값을 더해주고, credits 변수에는 학점을 더해줍니다. 반복문을 다 돈 후에는 score를 credits으로 나눠줘서 값을 구하면 됩니다..

Algorithm/백준 2023.03.28

[백준 알고리즘] 2941번: 크로아티아 알파벳 (Python)

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 소스코드 풀이 파이썬 함수 중 하나인 replace를 사용하여 풀면 간단하게 풀 수 있습니다. word 리스트에 문자들을 넣어두고, 입력 값으로 받은 문자에 word에 속한 문자가 들어있으면, 그 문자는 'a'로 변경해줍니다. 그러면 입력 값으로 받은 문자 중 word에 들어있는 문자는 'a'로, 들어있지 않은 알파벳은 그대로 남아있게 됩니다. 이 문자열의 길..

Algorithm/백준 2023.03.28

[백준 알고리즘] 11718번: 그대로 출력하기 (Python)

https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 소스코드 풀이 문제만 읽었을 때는 쉽게 풀 수 있겠다고 생각했지만, 입력 값을 몇번 받는지 정해지지 않은 경우, 어떻게 반복문을 빠져나올 지에 대해 생각해봐야 했습니당 ! try ~ except 구문 없이 출력을 돌리면 런타임 에러(EOFError)가 발생하게 됩니다. 런타임 에러를 해결하기 위해 try ~ except 구문을 통해 입력 값이 있을 경우엔 그 값을 그대로 출력해주..

Algorithm/백준 2023.03.24

[백준 알고리즘] 1744번: 수 묶기 (Python)

https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 소스코드 풀이 최적의 해를 구하는 그리디 알고리즘 문제이며, 입력으로 받는 수들을 양수, 음수, 0, 1로 나눠서 어떻게 연산을 해줄지에 대해 생각해야 하는 문제입니다. 1. 양수는 큰 수부터 두개씩 곱해야지만 가장 큰 수가 나온다 ( 정렬 시 내림차순 정렬) ex) 5,4,3,2,1 2. 음수는 작은 수부터 두개씩 곱해야지만 가장 큰 수가 나온다 ( 정렬 시 오름차순 정렬) ex) -5,-4,..

Algorithm/백준 2023.03.23

[백준 알고리즘] 1316번: 그룹 단어 체커 (Python)

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 소스코드 풀이 1.리스트를 만들어 확인하려고 하는 문자가 이미 리스트에 들어가 있는지, 2. 확인하려고 하는 문자가 바로 이전문자와 같지 않은지 이 두가지를 비교할 수 있다면 어렵지 않게 풀 수 있는 문제입니다. 'for i in words:'에서 입력받은 문자의 알파벳을 하나씩 읽고, 읽은 문자가 위의 1번과 2번에 모두 성립한다면 그 단어는 그룹 단어가 아니기 ..

Algorithm/백준 2023.03.22

[백준 알고리즘] 1181번: 단어 정렬 (Python)

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 소스코드 풀이 단순 문자열 문제입니다 ! sort() 함수로 배열하는 것만 잘하면 쉽게 풀 수 이써영 입력 받을 때 sys 모듈 사용해서 받으면 시간을 많이 단축시킬 수 있음 ! 하나 유의해야 할 점은 문자열을 for 문에서 받을 때는 strip() 함수를 통해 공백 제거를 해줘야 합니당 중복을 제거하기 위해 리스트 a를 set 자료구조로 변경 해줌 ! set은 중복을 허용하지 않는 집..

Algorithm/백준 2023.03.21

[백준 알고리즘] 1158번: 요세푸스 문제 (Python)

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 소스코드 풀이 자료구조 중 하나인 Queue(큐)를 사용하면 어렵지않게 해결할 수 있는 문제입니다. 기본적으로 큐는 FIFO(First in First out, 선입선출) 성격을 가지고 있습니다. 이러한 성질을 활용하여 배열을 앞에서부터 순서대로 제거해줄 수 있습니다. 파이썬에서 큐를 사용하기 위해서는 'from collections import deque'로 큐를 임포트해줘야 합니다. n까지의 입력받은 배열을 '큐' 자료구조인 a 저장해줍니다. ans 리스트는 문제의 정답인 제거되는 사..

Algorithm/백준 2023.03.21

[백준 알고리즘] 1026번: 보물 (Python)

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 알고리즘을 알지 못해도 풀 수 있는 문제라고 생각하지만, 백준 사이트의 알로리즘 분류에는 '그리디 알고리즘'으로 분류되어 있습니다. 그리디 알고리즘이란 매 순간 최적의 선택을 하여 문제를 풀어나가는 기법입니다. 소스 코드 풀이 파이썬에는 다른 언어들과 다르게 다양한 함수를 활용할 수 있습니다. 이 문제에서는 remove(), min(), max() 함수를 활용하였습니다. min() 함수는 ..

Algorithm/백준 2023.03.16

[백준 4344번] 평균은 넘겠지 (Python)

백준 사이트 4344번 평균은 넘겠지 문제 !! 난이도는 높지 않았지만, 소수점을 출력하는 부분에서 약간의 어려움을 겪었기 때문에, 그 내용을 정리하고자 블로그를 써봅니당 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 예제 입력 5 5 50 50 70 80 100 7 100 95 9..

Algorithm/백준 2022.08.17
반응형