목록Problem Solving (7)
Visual Studio

1459번: 걷기 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 ( www.acmicpc.net 걷기 문제 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 (X, Y)에 위치한 집으로 가려고 한다. 세준이가 걸을 수 있는 방법은 두가지 인데, 하나는 도로를 따라서 가로나 세로로 한 블록 움직여서 이번 사거리에서 저 사거리로 움직이는 방법이고, 블록을 대각선으로 가로지르는 방법이 있다. 세준이가 집으로 가는데..
2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 입력 N (0 ≤ N ≤ 1,000,000,000,000,000,000)을 M (M ≥ 1) 개의 서로 다른 팩토리얼의 합으로 나타낼 수 있으면 "YES", 나타낼 수 없으면 "NO"를 출력하는 문제이다. 백트래킹으로 간단하게 해결할 수 있다. factorial(19) = 121,645,100,408,832,000 UpperLimit(N)..
13073번: Sums For each test case, print three space separated integers S1, S2, S3 in one line where S1 : the sum of first N positive integer, S2 : the sum of first N positive odd integer, S3 : the sum of first N positive even integer. www.acmicpc.net 각 테스트 케이스마다 주어지는 정수 N(1
4909번: Judging Olympia For years, a group of Regional Contest Directors (RCDs) of the ACM International Collegiate Programming Contest (ICPC) have been unsatisfied with the way contest submissions get ranked. The group sees it is academically wrong to emphasize the importance of www.acmicpc.net 영어 문제이다. 각 라인마다 1 이상 10 이하의 6개의 정수가 주어지는데,최댓값과 최솟값을 제외한 4개의 값의 평균을 구하는 쉬운 태스크이다. 종료조건은 0 0 0 0 0 0 이 입..
FirstUnique coding task - Practice Coding - Codility Find the first unique number in a given sequence. app.codility.com A non-empty array A consisting of N integers is given. The unique number is the number that occurs exactly once in array A. For example, the following array A: A[0] = 4 A[1] = 10 A[2] = 5 A[3] = 4 A[4] = 2 A[5] = 10 contains two unique numbers (5 and 2). You should find the fir..
C99 char S[1000004];T[99],N; main(){T[65]=0,T[71]=1,T[67]=2,T[84]=3;scanf("%d%s",&N,S);while(--N)S[N-1]="ACAGCGTAATCGGAGT"[T[S[N-1]]*4+T[S[N]]];printf("%c",S[0]);} 159B Python3 T={'A':0,'G':1,'C':2,'T':3} N,S=[*open(0)] N=int(N)-1 C=S[N] while N: C="ACAGCGTAATCGGAGT"[T[S[N-1]]*4+T[C]];N-=1 print(C) 123B 보통 염기서열 매칭 테이블을 2차원 배열로 정의해놓고 접근하는데, 1차원으로 늘여놓으면 코드를 더 줄일 수 있다.

# 처음 주어지는 라인이 정수 N인 경우(혹은 문제 해결에 있어 필요 없는 경우) L = list(map(int, [*open(0)][1:])) # 첫 라인 부터 element가 주어지는 문제의 경우, unpacking이 필요없음. L = list(map(int, open(0))) # 이후 코드에서 index 없이 iterate 할 경우 list로 변환하지 않아도 된다. L = map(int, [*open(0)][1:]) for e in L: print(e) 비교적 짧은 코드로 N개의 정수가 주어지는 문제에서 처음 주어지는 N을 제외한 eof까지 모든 라인 입력을 정수로 가져올 수 있다. 온라인 저지 사이트에서 아래 코드와 같은 동작을 한다고 생각하면 된다. N = int(input()) L = [] f..