https://www.acmicpc.net/problem/11179 11179번: 2진수 뒤집기 희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은. www.acmicpc.net 풀이 우선 입력받은 값을 인덱싱을 활용해서 뒤집는다. 이때 그냥 bin() 함수를 쓰면 앞에 '0b'가 붙은 상태로 2진수로 변환된다. 따라서 뒤집은 값을 그대로 다시 10진수로 변환하기 전에 맨 뒤에 있을 'b0'을 제외하고 출력해야 한다. 리스트 인덱싱을 복습할 수 있는 문제였다. 코드 input = __import__('sys').stdin.readline n = int(input()) bin..
전체 글
항공대 알고리즘 동아리 Koala 🥰문제 https://www.acmicpc.net/problem/12847 12847번: 꿀 아르바이트 월세를 내기 바로 전 날 까지 인 n (1 ≤ n ≤ 100,000) 일과 일을 할 수 있는 날 m (0 ≤ m ≤ n) 일이 주어진다. 그 다음 줄 에는 1일부터 n일 까지 일급 Ti가 순서대로 주어진다. (0 < Ti ≤ 1,000,000) www.acmicpc.net 코드 풀이 일급 t를 arr에 넣은 다음 arr의 누적합 psum의 index가 m+1만큼의 차이를 가질 때의 psum 값의 차이를 result에 저장하고 최댓값을 출력한다.
https://www.acmicpc.net/problem/17245 17245번: 서버실 서버실에는 모두 85대의 컴퓨터가 있고, 3분이 지나면 전체의 58%인 50대의 컴퓨터가 정상 작동된다. www.acmicpc.net 🖇 이진 탐색 코드 # 17245 # 시간초과 나는 걸로 봐선, 단순 반복문으로 풀면 안된다. # 그럼 이진 탐색으로? L==1, R==10,000,000 을 초기값으로 탐색하는 것? input = __import__('sys').stdin.readline n = int(input()) li = [] for i in range(n): li.append(list(map(int,input().split()))) sm = 0 mx = 0 for i in range(n): for j in r..
문제 링크 https://www.acmicpc.net/problem/1270 1270번: 전쟁 - 땅따먹기 첫째 줄에는 땅의 개수 n(n t / 2: # 전쟁 끝 print(max_key) else: print('SYJKGW')
https://www.acmicpc.net/problem/3181 3181번: 줄임말 만들기 꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 www.acmicpc.net 풀이 과정 우선 금지된 단어(ban_list)에 줄임말로 들어가면 안되는 단어들을 리스트에 넣어준다. 그 후 for문과 if문, in/not in 개념을 이용해 각 단어가 맨 앞자리 문자 (첫번째 단어)가 아니거나, 금지된 단어 목록에 있으면 continue를 해주어 무시하고 반복문을 그대로 순회하도록 구현해보았다. 답 str_list = list(input().split()) ban_list = ['..
1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이 1. 딕셔너리 구조를 이용하여 각 문자가 몇번이나 등장하는지 value에 저장한다. 2. 딕셔너리 value 값을 람다함수를 이용하여 내림차순으로 정렬한다. 3-1. 딕셔너리에 입력된 문자가 한개인 경우, 첫 번째 키(가장 많이 등장한 문자)를 대문자로 출력한다. 3-2. 딕셔너리에 입력된 문자가 여러개인 경우, 첫번째 키와 두번째 키의 value를 비교하여 동일한 경우 '가장 많이 사용된 알파벳이 여러개인 경우'에 해당하므로 '?'를 출력한다. 코드 string = input() stri..
https://www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M screen >> basket; cin >> apple; int* arr = new int[apple]; int location; for (int i = 0; i > location; arr[i] = location; } int left = 0, right = basket - 1; int cost = 0; for (int i = 0; i < apple; ++i) { int dropIdx = arr[i] - 1; int dista..
https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이 www.acmicpc.net 문장이 주어지고 문장에서 가장 많이 사용된 알파벳을 출력하는 문제이다. 사용자로부터 문자열을 입력받다가 EOFError가 발생하면 알파벳을 계산한다. try를 이용하여 사용자로부터 문자열을 입력받고, 입력받은 문자열의 알파벳 딕셔너리를 만든다. 딕셔너리 키는 알파벳, 벨류는 등장 횟수로 한다. 결과를 계산하기 위한 리스트를 선언하고 만든 딕셔너리에 존재하는 공백 키를 제거한다. 반복문을 통..
문제 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 코드 풀이 소수만 arr에 저장하기 위해 입력받은 N만큼의 리스트를 모두 True로 저장한 뒤 2부터 곱해지는 수들을 모두 False로 만든다. 이때 j를 2부터 하나씩 더하면서 곱하므로 N의 제곱근까지 범위로 설정하면 N까지 모든 소수를 찾아낼 수 있다. True로 저장된 소수를 result 안에 넣고 2부터 곱해지는 수를 False로 저장했으므로 True로 남아있는 0과 1을 빼낸다. 그 이후 투포인터를 실행하는데 L부터 R까지의 합이 N과 같으면 cnt+=1하고 합이 더 크면 L을 옮겨서 sum의 범위를 ..
https://www.acmicpc.net/problem/23972 23972번: 악마의 제안 첫째 줄에 악마가 제안한 정수 K와 N이 공백을 사이에 두고 주어진다. (1 ≤ K, N ≤ 200,000,000) www.acmicpc.net 문제 어느 날, 민주는 꿈에서 악마를 만나게 되었다. 악마는 자신에게 K원을 지불하면, 지불하고 남은 금액을 N배로 만들어준다고 한다. 민주는 자신이 최소 몇 원을 가지고 있어야 악마에게 K원을 지불했을 때 손해를 보지 않는지 알고 싶다. 악마가 제안한 K와 N이 주어졌을 때, 민주가 손해 보지 않기 위해 가지고 있어야 하는 최소 금액 X를 구해주자. 단, 금액은 정수여야 한다. 입력 첫째 줄에 악마가 제안한 정수 K와 N이 공백을 사이에 두고 주어진다. (1 ≤ K,..
문제 문제플이 오랜시간 고민하다가 비교해야하는 단어는 리스트 로 만들고 단어의 첫머리가 D에 속하는지 유무로 나눈 다음 경우를 다시 분류해서 풀게 되었습니다!!! D=['i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'] a=input().split() for i in range(len(a)): if i==0 : if a[i] in D: print( a[i][0].upper(),end="") if a[i] not in D: print( a[i][0].upper(),end="") else: if a[i] in D:None else:print(a[i][0].upper(),end="")
https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 1. 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지,..