문제/백준 41

[백준/BOJ] 2953번: 나는 요리사다 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/2953 2953번: 나는 요리사다 "나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5 www.acmicpc.net 생각 그냥... 한줄 다 더해서 찾으면 되겠넹... 코드 maxNum=0 maxIndex=0 for i in range(5): n1, n2, n3, n4 = map(int, input().split()) num = n1+n2+n3+n4 if maxNum < num: maxNum = num maxIndex = i+1 print(maxIndex, maxNum)

문제/백준 2021.07.11

[백준/BOJ] 17211번: 좋은 날 싫은 날 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/17211 17211번: 좋은 날 싫은 날 지은이가 건국한 나라인 유애나에 살고 있는 재현이는 너무 단순한 나머지 매일이 기분이 좋은 날, 기분이 싫은 날 두가지로 나누어진다. 어느 날 지은이는 재현이에 대한 놀라운 사실을 발 www.acmicpc.net 생각 2의 N제곱의 경우의 수가 있다. ㅊ 으으ㅡ으으음... 첫 시작의 기분은 정해져 있고, 결과는 좋은날과 싫은날 두 가지 이다. 직접 2일, 3일의 경우의 수를 계산해본다면 누적해서 계산해야된다는 것을 알 수 있다. 첫날은 주어지기 때문에 다음날에 대한 경우의 수가 크지 않다. 이제 그 다음부터 2가지 경우로 생각하면된다 만약 좋은 경우라면, 좋은데 계속 좋음과 좋은데 싫음 이렇게 두 가..

문제/백준 2021.07.11

[백준/BOJ] 17210번: 문문문 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/17210 17210번: 문문문 첫째 줄에 총 문의 개수 N(2 ≤ N ≤ 2,500,000,000)이 주어진다. 둘째 줄에는 유신이가 첫 번째 문을 통과할 때 문을 연 방법이 주어진다. 밀어서 여는 법은 숫자 0, 당겨서 여는 법은 숫자 1로 표기된 www.acmicpc.net 생각 처음 볼 때는 이게 뭔가 싶지만 이해하고 나면 쉽다! 5번째 문까지만 통과할 수 있기 때문데 6이상의 수가 입력되면 Love is open door을 출력하면 된다. 5이하이면 주어진 통과방법을 시작으로 0101 또는 1010라고 출력하면 된다. 코드 x = (int)(input()) y = (int)(input()) if x

문제/백준 2021.07.11

[백준/BOJ] 5598번: 카이사르 암호 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/5598 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 생각 아스키코드 표를 보고 생각하면 더욱 쉽게 느껴질 수 있다! 우선 3을 빼고, 65(A)보다 수가 작으면 +26(대문자 수)을하고 출력하자! 코드 s = input() result = "" for i in s: i = ord(i)-3 if i < 65: i = i+26 result += chr(i) print(result) 파이썬은 형변환을 해..

문제/백준 2021.07.11

[백준/BOJ] 11721번: 열 개씩 끊어 출력하기 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 생각 단어를 10개씩 끊어서 출력하기!! 문자 슬라이싱을 사용하면 쉽게 풀 수 있을 것이다. for문을 10단위로 증가시키면서 활용하면 끝! 코드 s = input() for i in range(0, len(s), 10): print(s[i:i+10])

문제/백준 2021.07.11

[백준/BOJ] 1157번: 단어 공부 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 생각 우선 대문자로 문자열을 바꿈 set으로 감싸서 다른 변수로 저장 for문으로 돌려서 max - 있는 예제로 정확한 출력이 되는데 통과되지 않는 이유를 모르겠어서 다른사람 코드 참고함... list를 만들어서 count를 다 저장하는 것으로 수정함 (원래는 비교해서 maxCount를 찾았음) 코드 str1 = input().upper() set1= list(set(str1)) ch = [] for i in set1: co..

문제/백준 2021.07.11

[백준/BOJ] 5622번: 다이얼 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 생각 배열에 저장해서 배열에 포함되어 있으면 인덱스+2를 최소시간에 저장하면 될 듯! ABC가 배열의 0번째 원소! 코드 numbers = ["ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ"] num = input() minTime = 0 for i in num: for j in range(len(numbers)): if i in numbers[j]: minTime += j+3 print(minTime)

문제/백준 2021.07.10

[백준/BOJ] 8958번: OX퀴즈 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 생각 반복할 숫자를 입력받음 - 스트링을 입력받고 반복문으로 스슥 O에 따라 점수를 카운트함. (테스트케이스가 바뀌면 출력 후 리셋) 그리고 O가 몇번 연속으로 나오는지 카운트 하는 변수도 만들기 (X가 나오면 리셋) 코드 count = (int)(input()); for i in range(count): grade = 0 oCount = 0 str1 = input(); ..

문제/백준 2021.07.10

[백준/BOJ] 4659번: 비밀번호 발음하기 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 생각 end를 입력받을 때까지 비밀번호의 적합성을 판단한다. 1. 모음이 하나라도 포함되어 있는지 확인 2. 같은 글자가 연속으로 두번 오는지 확인 (ee와 oo는 예외) 3. 모음이 3개 혹은 자음이 3개 연속으로 오는지 확인 포함되어 있는지 확인은 in을 활용 해당 문자와 다음 문자가 다른지 확인 (ee, oo는 예외) 코드 while True: str = input() com = ..

문제/백준 2021.07.08

[백준/BOJ] 4344번: 평균은 넘겠지 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 생각 우선 테스트 케이스 개수를 받고 반복함. 두 번째 테스트 케이스 개수를 받고 반복함 N명의 점수를 리스트에 저장 평균을 구하고 평균을 넘는 학생들을 구함. N명 중에서 몇명인지 비율을 구함. (셋째 자리에서 반올림) 코드 c1 = int(input()) for i in range(c1): count = 0 grade = list(map(int, input().split())) avg = sum(grade[1:])/grade[0] for num in grade[1:..

문제/백준 2021.07.07