https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net
분류 전체보기
https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 문제 코드 문제풀이 딕셔너리에 입력 받은 이름과 그에 따른 출퇴근 여부를 저장하도록 해준다. 그리고 퇴근이 찍히면 그 사람의 이름을 지워준다. 마지막에 남은 사람의 이름을 알맞게 출력해준다.
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 해석 N * M 크기의 방이 존재한다. 이 방의 가장자리는 모두 벽으로 이루어져 있고, 추가적인 벽이 존재 할 수 있다. 벽은 1, 빈 공간은 0으로 입력된다. 로봇 청소기는 다음과 같은 규칙을 통해 동작한다. 1. 현재 위치를 청소한다. 2. a. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향이 청소하지 않은 공간이라면 회전하고, 전진한 후 1번부터 진행한다. b. 현재 위치에서 현재 방..
문제 문제풀이 Python에서 일반적으로 특정문자의 개수를 세는 함수인 count함수를 쓰면 IOIOIOI같이 IOI가 중첩되어 나타나있는 문자열에서의 IOI의 수를 셀 때 버그가 일어날 수 있다. 따라서 반복문을 이용해 I다음 문자가 O이고 O다음 문자가 I인지를 판별해 IOI의 개수를 세야한다. JOI의 경우 맨 앞과 맨 끝의 문자가 다르므로 count함수를 이용해 JOI의 개수를 세도 된다. import sys IOI_count = 0 a = sys.stdin.readline() a_li = list(a) for i in range(len(a)): if a_li[i] == "I": if a_li[i+1] == "O": if a_li[i+2] == "I": IOI_count += 1 print("{}..
https://www.acmicpc.net/problem/5704 5704번: 팬그램 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제 해석 입력받는 문장이 알파벳의 모든 글자를 사용해서 만든 '팬그램'이면 Y, 아니라면 'N'을 출력한다. 입력이 *라면 종료한다. 코드 import sys while True: a = input() if a == "*": break else: for i in range(97, 123): if a.find(chr(i)) == -1: print('N') break print('Y') 문제 풀이 아스키 ..
#include #include using namespace std; string str; int main(void) { cin >> str; cout > str; for (int i = 0; i str; cout
https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 문제분석 대표적인 투포인터 알고리즘 문제이다. 리스트를 탐색하면서 탐색한 리스트의 합이 m이면 카운트를 하여서 경우의 수를 출력하면 되는 문제이다. 수열의 개수와 나와야 하는 합을 첫째 줄에 입력받고 다음 줄에 해당 수열을 입력받는다. 코드 n, m = map(int, input().split()) s = list(map(int, input().split(..
https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문자열 s의 길이가 0일 경우도 있는데 나는 이 부분을 빼먹어서 시간을 많이 빼았겼다. s의 길이가 0인 부분을 생각하자
3449번: 해밍 거리 (acmicpc.net) 3449번: 해밍 거리 입력을 여러 개의 테스트 케이스로 이루어져 있다. 첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 각 줄에는 이진수가 하나씩 주어진다. 두 이진 www.acmicpc.net 문제 해석 두 이진수의 서로 다른 자리수의 개수를 찾는다. 코드 문제 풀이 이진수를 문자열로 받은다음 list로 변환시켜서 각 자리마다 요소하나로 저장한다. 그 후, list 길이만큼 for문을 돌리며 list a와 list b를 xor해서 1이 나올 경우 count에 1을 더한다.
https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 문제 해석 칠판에 두 수가 주어질 것이다. 하지만 상근이는 이 두수를 거꾸로 읽는다. 거꾸로 읽었을 때, 가장 큰 수를 출력해낼 수 있는 프로그램을 작성하기!! 코드 문제 풀이 a와b가 주어지면 input과 split함수를 이용해 입력하고 두 수를 구분해준다. 그리고 각각 숫자가 반대로 되었을 때, 두 수의 크기를 비교해 a가 크면 그 바뀐 숫자가 출력되게 명령한다. 반대로 b가 크다면 b가 출력되게 코드를 ..