분류 전체보기

코드 n = input() ans = n[::-1] if ans in n : print('true') else : print('false')
문제 도현이는 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;..
https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 문제분석 분류 구간합(Prefix sum) 다이나믹 프로그래밍(Dynamic Programming) 문제설명 배열의 크기 N 입력 구간합 구하는 횟수 M 입력 배열 입력, 구간합 좌표 입력 입력된 좌표 (시작X, 시작Y) (종료X, 종료Y) 사이의 구간을 입력 구간합 -> O(N)의 속도로 문제 도출 입력 4 3 1 2 3 4 2 3 4 5 3 4 5 6..
2504번: 괄호의 값 (acmicpc.net) 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 소스코드 문제풀이 많은 시간을 투자했는데 결국 구글링의 힘을 빌려 알고리즘을 보고 구현만 직접 한 문제이다. 어떤 변수를 통해서 값을 곱하고 나눠야 하지않을까 까지는 접근하였는데, 너무 복잡하게 생각했는지 아니면 남은 한 문제만 빨리 해결하고 싶어서 그랬던 건지 직전 인덱스의 값만 보고 result에 더할 생각을 하지 못했다. 결국 내가 생각한 방법이 틀렸구나 모르겠다 하고 검색한 것인데 예상외로 너무 단순해서 ..
KauKoala
'분류 전체보기' 카테고리의 글 목록 (108 Page)