본문 바로가기

분류 전체보기

(263)
[백준 파이썬] #1316: 그룹 단어 체커 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net [문제 이해] ccazzzzbb, kin, happy → 그룹 단어 O aabbbccb, abab → 그룹 단어 X 즉 알파벳이 연속되는 경우는 상관없지만 똑같은 알파벳이 연속되지 않게 나타날 경우 그룹 단어가 아니다. [풀이 생각] - 알파벳이 리스트에 있지 않다면 해당 알파벳을 리스트에 넣어준다. - 만약 해당 알파벳이 이전 알파벳과 같지 않고 리스트에 존재한다..
[백준 파이썬] #1157: 단어 공부 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net [정답] 1. 알파벳 대소문자로 이루어진 단어를 입력받아 모두 대문자로 변경해 word로 정의한다. 알파벳의 수를 넣어줄 num을 정의한다. 2. 아스키코드 A~Z 만큼 for문을 돌면서 A~Z의 수를 count해 리스트 num에 추가한다. 3. 만약 max(num)가 num에 1개 있다면 max(num)에 해당하는 알파벳을 출력한다. 그 외의 경우 '?'을 출력한다.
[백준 파이썬] #9295: 주사위 https://www.acmicpc.net/problem/9295 9295번: 주사위 각 테스트 케이스마다 "Case x: "를 출력한 다음, 주사위를 두 번 던져 나온 두 수의 합을 출력한다. 테스트 케이스 번호(x)는 1부터 시작한다. www.acmicpc.net [정답] 1. 테스트 케이스의 개수 T를 입력받는다. 2. 0~T-1동안 for문을 돌면서 주사위를 두 번 던져 나온 두 수 a,b를 입력받는다. 그리고 주사위를 두 번 던져 나온 두 수의 합을 출력한다.
[백준 파이썬] #2476: 주사위 게임 https://www.acmicpc.net/problem/2476 2476번: 주사위 게임 첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. www.acmicpc.net [정답] 1. 참여하는 사람의 수 N을 입력받는다. 그리고 가장 많은 상금을 받은 사람의 상금을 winer로 정의한다. 2. 0~N-1(사람의 수만큼)동안 for문을 돌면서 3개의 주사위 값을 입력받아 리스트형태로 dice에 넣어준다. 3. 같은 주사위의 개수를 count로 정의하고 1로 초기화한다. 4. 0~2(주사위의 개수)동안 for문을 돌면서 만약 dice[i]의 개수가 count보다 크다면 count를 dice[i]의 개수로 업데이트하..
[백준 파이썬] #2480: 주사위 세개 https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 같은 눈이 2개만 www.acmicpc.net [정답] 1. 3개의 주사위 값을 입력받아 리스트형태로 dice에 넣어준다. 같은 주사위의 개수를 count로 정의하고 1로 초기화한다. 2. 0부터 2까지 for문을 돌면서 만약 dice[i]의 개수가 count보다 크다면 count를 dice[i]의 개수로 업데이트하고 dice[i]를 같은 주사위의 수인 num에 넣어준다. 3. 만약 count==1라면 즉 같은 주사위가 없다면..
[백준 파이썬] #10103: 주사위 게임 https://www.acmicpc.net/problem/10103 10103번: 주사위 게임 첫 라운드는 상덕이의 승리이다. 따라서 창영이는 6점을 잃게 된다. 두 번째 라운드는 두 사람의 숫자가 같기 때문에, 아무도 점수를 잃지 않고 넘어간다. 세 번째 라운드의 승자는 창영이이기 www.acmicpc.net [정답] 1. 창영이의 점수(C_score)와 상덕이의 점수(S_score)을 100으로 초기화한다. 2. 라운드의 수 n을 입력받는다. 3. n만큼 for문을 돌면서 창영이의 주사위에 나타난 숫자(C_dice)와 상덕이의 주사위에 나타난 숫자(S_dice)를 입력받는다. 4. 만약 C_dice가 S_dice보다 크다면 상덕이의 점수(S_score)에서 창영이의 주사위에 나타난 숫자(C_dice)..
[백준 파이썬] #10815: 숫자 카드 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net [정답] // 생략 저번 #1920 문제와 이번 문제는 출력 방식 제외하고는 똑같은 문제이다. 저번 #1920 문제는 책을 보고 풀었다면 이번 문제는 이진 탐색 방법 복습 겸 혼자 생각하면서 문제를 풀었다. 자세한 풀이는 #1920 문제를 참고하시면 될 것 같다. https://heewon9809.tistory.com/205 [백준 파이썬] #1920: 수 찾기 ht..
[백준 파이썬] #1920: 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net [오답] → 시간초과 다른 블로그들을 참고해보니 "이진 탐색(이진 검색)" 으로 풀어야 시간초과가 나지 않는다는 것을 알았다. 나는 알고리즘 수업시간에 배운 p.1-281~283을 참고하여 이 문제를 풀었다. [정답] 1. 리스트 A의 길이인 N과 검색 대상인 리스트 A를 오름차순 정렬하여 정의한다. 2. 리스트 num_list의 길이인 M과 찾고자..