[나의 풀이 방법] - 문자열을 받을 개수를 입력하고 그 수만큼 반복하며 문자열 입력 - 입력받은 문자열에서 문자를 가져와 ord 함수를 이용해 아스키 코드로 변환 - set로 만들어 중복 값이 없도록 설정 - 반복하면서 입력받은 문자의 아스키 코드가 아닌것들만 모음 - 더한 값을 출력
Koala - 7기
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 해석 연속되어 있는 단어들 중, 앞서 나온 단어가 후에 동떨어져서 출현한다면, 해당 단어는 그룹 단어가 아니다. 따라서 스트링으로 받고, 연속되는 지점이 끊기는 지점 (ex- aaabc에서 마지막 a에 해당하는 지점)에서 해당 문자가 뒤쪽 스트링에 나타나는지 확인하여 나타난다면 no를, 나타나지 않는다면 yes를 출력한다. 코드
문제 도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는다. 정확하게 24시간이 되는 순간이 아니면 잡지 않는 CTU 특수요원이다. 2008년 3월 3일 월요일, CTU는 새학기에 맞춰 핵폭탄을 날리겠다는 테러 정보를 입수했다. CTU에서는 특수요원 도현이에게 이 임무를 맡겼다. CTU의 프로그래머 준규는 이 사건의 배후가 김선영이란 것을 해킹을 통해 밝혀내었다. 도현이는 선영이를 임무를 시작한지 정확하게 24시간이 되는 순간에 잡으려고 한다. 만약 지금 시간이 13:52:30이고, 임무를 시작한 시간이 14:00:00 이라면 도현이에게 남은시..
문제 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 출력 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다. 예제 입력 1 복사 3 예제 출력 1 복사 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 문제풀이 n을 입력받으면 n!개의 줄에 걸쳐 모든 순열을 순차적으로 출력하면 된다. 반복문을 사용해야 하나..? 생각이 들었는데 뭔가 이런 문제들만을 위한 방법이 따로 있을것 같아 구글링해봤더니 역시 대표적인 문제유형 중 하나였다. vectorv(n); // 입력받은 n의 크기만큼 배열을 생성하며, 동시의 각 배열의 값을 0으로 초기화해주는 코드다. (next_permut..
문제 매일 밤, 정인이는 상근이에게 이메일을 보낸다. 정인이는 자신의 이메일이 해킹당할 수도 있다는 생각에, 내용을 항상 암호화해서 보낸다. 정인이가 사용하는 암호 알고리즘은 다음과 같다. 정인이가 보내는 메시지는 총 N글자이다. 먼저, 정인이는 R A; a = strlen(A); for(int i=1; i
https://www.acmicpc.net/problem/2789 2789번: 유학 금지 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, www.acmicpc.net 문제 분석 1. 문자열을 입력받는다. 2. 각 문자가 CAMBRIDGE애 있는지 확인 3. CAMBRIDGE에 있으면 제거 4. 출력
Intro Solution 주어진 문자열에 특정한 알파벳이 몇 개 들어있는지 구하는 문제다. 질문이 최대 200,000개 주어지며 알파벳이 중복으로 주어질 수 있기 때문에 누적 합을 이용해서 시간복잡도를 줄여야 한다. 주어진 질문의 알파벳이 처음 나왔다면, 문자열을 순회하며 해당 문자열 개수의 누적 합을 저장한다. python으로 실행할 때 제한 시간을 통과하지 못했으나, pypy3으로는 통과할 수 있었다. Code import sys input = sys.stdin.readline def solve(): S = input().strip() size = len(S) q = int(input()) psum = {} for _ in range(q): a, l, r = input().split() l, r =..
문제 https://www.acmicpc.net/problem/3059 3059번: 등장하지 않는 문자의 합 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 www.acmicpc.net 코드 풀이 차집합을 사용하여 전체 알파벳이 들어있는 집합에서 입력한 집합을 빼서 아스키코드로 변경했다.
문제 코드 n= int(input()) #테스트 케이스의 개수 for _ in range(n): A,B=map(str,input().split()) a = sorted(list(A)) b = sorted(list(B)) if a == b: print("%s & %s are anagrams."%(A, B)) else: print("%s & %s are NOT anagrams."%(A, B)) 풀이 구현 : 1. A와 B의 단어에서 사용된 알파벳을 하나하나 구분하여 리스트를 만든다. 2. A,B의 리스트를 알파벳 순서로 정렬한다. 3. 정렬한 리스트가 같다면 애너그램 성립 ! 실현 : 1. 우선 int(input())을 이용하여 테스트 케이스의 개수를 입력받는다. 2.
https://www.acmicpc.net/problem/2315 2315번: 가로등 끄기 첫째 줄에는 2개의 정수 N(1 ≤ N ≤ 1,000), M 이 있다. 첫 번째 정수 N은 가로등의 개수를 나타내는 정수이고, 두 번째 정수 M은 마징가 처음에 위치하는 가로등 번호이다. 다음 N 개의 줄에는 각 가 www.acmicpc.net 문제 문제 유형 다이나믹 프로그래밍, 누적 합 문제 분석 실력과 기술이 좋지않으면 잡무나 평생하게 된다는 철학을 담은 문제다. 마징가z가 특정 위치(가로등) 에서 시작하고, 모든 가로등을 끌 때 까지 소모되는 전력양을 구하는 문제이다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.I..
https://www.acmicpc.net/problem/2435 2435번: 기상청 인턴 신현수 첫째 줄에 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 주어진다. N은 온도를 측정한 전체 날짜의 수이다. N은 2이상, 100이하이다. K는 합을 구하기 위한 연속적인 날짜의 수이다. K는 1과 N 사 www.acmicpc.net 문제 분석 N개의 정수를 입력 받아서 연속되는 K개의 수의 합이 최대가 되는 값을 구하는 문제이다. 누적합을 사용해야 시간 제한을 어기지 않을 수 있다. 코드 #include #include using namespace std; int main(){ int n, k; cin>>n>>k; int sum[n+1]; sum[0] = 0; int tmp; for(int i=1;..