문제풀이 두개의 값을 입력받고 2 두개에 적용되는 조건을 넣어주면 된다. 일단 첫번째로 대입되는 수를 a, 그 다음 대입되는 수를 b로 두고 그 2개를 같은 경우와 같지 않은 경우로 나누고 그 안에서 같지 않은 경우에서 문제에 제시된 조건을 써 주고 만약 둘다 아닌경우는 else를 이용해 neither를 출력하면 된다. 그리고 같은 조건이 출력된 경우 break 구문을 이용해 끝내주면 된다. 소스코드 #include int main() { int a, b; while (1) { scanf("%d %d", &a, &b); if (a!=b){ if (b%a == 0) printf("factor\n"); else if (a%b == 0) printf("multiple\n"); else printf("neith..
Koala - 7기/기초 알고리즘 스터디
문제 코드 n = int(input()) for i in range(n): s = str(input()) print(s[0].upper()+s[1:]) 문제풀이 -하나의 문자열에서 어떻게 첫글자 하나만을 대문자로 고치는가에 대해 어려움이 있었다. 문제 해결방법은 생각보다 단순했다. 문자열을 하나의 배열로 보고 첫 글자를 [0]으로 쓰면 된다는 것! - 대문자 소문자로 고치는 방법은 파이썬에 내장되어 있는 코드를 사용하면 된다 소문자-> 대문자 : .upper() 대문자-> 소문자 : .lower()
코드 t = int(input()) for i in range(t): a = input() print('{0}{1}'.format(a[0],a[-1])) 문제풀이 문제풀이 자체에는 어려움이 없었지만 한가지 문제점이 있었다. 아래는 내가 처음 작성했던 코드이다. import sys input = sys.stdin.readline t = int(input()) for i in range(t): a = input() print('{0}{1}'.format(a[0],a[-2])) sys.stdin.readline을 이용한 입력에서는 \n까지 포함되어 입력되므로 인덱스에서 -1이 아닌 -2를 찾는 방식으로 맞춰주었다. 하지만 이 정답은 결과가 맞게 나왔음에도 오답처리되었고 결국 모듈을 빼고 작성한 코드(상단의 정..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 풀이 맨처음에는 각 짝을 찾는 탐색형식으로 문제를 풀려고 했는데, 그렇게 하면 너무 번거롭게 됨을 깨닫고 방법을 찾다가 간편한 방식을 찾았다. 바로 '()'를 찾아 이를 문자열에서 제거하는 것이다. 그렇게 계속해서 제거하다보면 결국 짝이 맞는 문자열만이 공백이 되고, 안맞는 문자열은 한쪽 괄호만이 남게 된다. C++로 풀어보려 했지만, 파이썬에 구현되어 있는 아..
https://www.acmicpc.net/problem/14910 14910번: 오르막 첫째 줄에 공백으로 구분된 N(1 ≤ N ≤ 1,000,000)개의 정수가 주어진다. 입력으로 주어지는 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 소스 코드 문제 풀이 입력된 정수들의 나열과 그것을 copy()를 통해 복사한 후, sorted()로 인해 오름차순으로 정렬된 정수들의 나열을 비교하여 같으면 "Good" , 다르면 "Bad" 를 출력하게 하였다.
https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 문제 설명 출입 카드 시스템에 들어온 사람과 나간 사람의 로그가 저장된다. 출입한 사람의 이름과 출입 여부가 주어질 때, 아직 나가지 않은 사람을 출력하면 되는 문제다. 코드 설명 우선, n으로 총 로그의 수를 입력받는다. n만큼 도는 for문 안에서, 2개의 요소로 이루어진 입력값을 리스트로 변환하여 입력받는다. 사람 이름을 key값으로, 회사 출입 여부를..
https://www.acmicpc.net/problem/3449 3449번: 해밍 거리 입력을 여러 개의 테스트 케이스로 이루어져 있다. 첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 각 줄에는 이진수가 하나씩 주어진다. 두 이진 www.acmicpc.net 문제해석 두 이진수가 다를 때 거리를 1씩 증가시킨다. t = int(input()) for i in range(t): cnt = 0 a = input() b = input() for j in range(len(a)): if a[j] != b[j]: cnt += 1 print('Hamming distance is {}.'.format(cnt)) 문제풀이 반복문을 이용해 입력받은 t번의 횟수만큼 반복한..
문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할..
https://www.acmicpc.net/problem/6996 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(> n; for (int i = 0; i > str1 >> str2; if (str1.size() != str2.size()) { // 글자수 먼저 구별 cout
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제해석 책 이름을 n개만큼 입력 받고, 가장 많이 입력받은 책 이름을 출력하는 문제이다. 코드 #include #include #include #include using namespace std; int main(){ int Max =0; int n; cin >> n; map m; string str; for(int i=0;i> str; m[str]++; } for (int i= m.be..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제분석 1) '('의 개수와 ')'의 개수가 같은지 파악 2) 개수는 같지만 ')'가 먼저 입력될 경우 3) 끝날 때 '('로 끝나는 경우 문제풀이 - '('과 ')'의 짝이 맞는지 '('가 나오면 +1, ')'가 나오면 -1을 하는 count 선언 - 만약 ')'가 먼저 나오는 경우 count가 음수로 가기 때문에 음수로 가는 경우가 있는지 변수 t를 통해서 저장..