목록알고리즘 (175)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 풀이 코드 import sys while True: line = sys.stdin.readline().rstrip('\n') if not line: break l, u, d, s = 0, 0, 0, 0 for each in line: if each.islower(): l += 1 elif each.isupper(): u += 1 elif each.isdigit(): d += 1 el..
문제 링크 https://www.acmicpc.net/problem/2864 2864번: 5와 6의 차이 첫째 줄에 두 정수 A와 B가 주어진다. (1
문제 링크 https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 풀이 코드 n = int(input()) player_list = [] result = [] for _ in range(n): a = input() player_list.append(a[0]) first_names = set(player_list) for i in first_names: if player_list.count(i) >= 5: result.append(i) if len(result..
문제 링크 https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 풀이 코드 c = [] for _ in range(8): c.append(list(map(str, list(input())))) n = 0 for i in range(8): for j in range(8): if (i + j) % 2 == 0: if c[i][j] == 'F': n += 1 print(n) 코드 해석 체스판을 이중 for문으로 탐색한다. 만약 탐색중인 좌표가 하얀칸이고..
문제 링크 https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 풀이 코드 a = list(map(int, input().split())) answer = [1, 2, 3, 4, 5] while True: for i in range(len(a)-1): if a[i] > a[i+1]: a[i], a[i+1] = a[i+1], a[i] print(" ".join(map(str, a))) if a == answer: break 코드 해석 버블정렬을 할용하여 간단히 풀이하였다.
문제 링크 https://www.acmicpc.net/problem/2605 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 www.acmicpc.net 풀이 코드 arr = [] n = int(input()) l = list(map(int,input().split())) for i in range(n): arr.insert(l[i],i+1) print(*arr[::-1]) 코드 해석 번호를 받은 뒤 리스트로 변환한다. 그리고 리스트의 번호의 자리에 순서대로 저장한다. 마지막으로 거꾸로 출력한다.
문제 링크 https://www.acmicpc.net/problem/6996 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(
문제 링크 https://www.acmicpc.net/problem/2526 2526번: 싸이클 두 자연수 N과 P를 가지고 다음 과정을 거쳐서 나오는 수를 차례대로 출력해보자. 처음 출력하는 수는 N이고, 두 번째 이후 출력하는 수는 N을 곱하고 P로 나눈 나머지를 구하는 과정을 반복하여 www.acmicpc.net 풀이 코드 n, p = map(int, input().split()) l = [] a = n while True: a = (a * n) % p if a in l: print(len(l) - l.index(a)) break l.append(a) 코드 해석 수를 받은 뒤 수를 저장할 리스트를 만들고 a라는 변수의 초기값을 n으로 설정한다. a 에 (a * n) % p 를 저장하고 만약 리스트 ..