728x90
반응형
- [ CS/코딩 테스트 ][Python] 점프 투 파이썬_종합문제_Q14_문자열 압축하기2021-12-09 16:51:00문제 https://wikidocs.net/17114 08장 종합문제 파이썬은 웹, GUI, 네트워크, 딥러닝 등 상당히 많은 일을 할 수 있는 언어이다. 여러분이 지금까지 배운 내용을 충분히 숙지했다면 이제 이들을 향해 첫발을 내디딜 준비를 ... wikidocs.net 점프 투 파이썬 Q14 문제의 지문은 다음과 같다. Q14 문자열 압축하기 문자열을 입력받아 같은 문자가 연속적으로 반복되는 경우에 그 반복 횟수를 표시해 문자열을 압축하여 표시하시오. 입력 예시: aaabbcccccca 출력 예시: a3b2c6a1 작성 코드 아래는 Q14 문제를 해결하기 위해 작성한 코드이다. s = 'aaabbcccccca' # 입력값 rst = '' cnt = 1 for i in range(1, len(s)-1)..
- [ CS/코딩 테스트 ][Python] 점프 투 파이썬_종합문제_Q13_DashInsert 함수2021-12-09 10:41:08문제 https://wikidocs.net/17114 08장 종합문제 파이썬은 웹, GUI, 네트워크, 딥러닝 등 상당히 많은 일을 할 수 있는 언어이다. 여러분이 지금까지 배운 내용을 충분히 숙지했다면 이제 이들을 향해 첫발을 내디딜 준비를 ... wikidocs.net 점프 투 파이썬 Q13 문제의 지문은 다음과 같다. Q13 DashInsert 함수 DashInsert 함수는 숫자로 구성된 문자열을 입력받은 뒤 문자열 안에서 홀수가 연속되면 두 수 사이에 - 를 추가하고, 짝수가 연속되면 * 를 추가하는 기능을 갖고 있다. DashInsert 함수를 완성하시오. 입력 예시: 4546793 출력 예시: 454*67-9-3 작성 코드 아래는 Q13 문제를 해결하기 위해 작성한 코드이다. def Dash..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_1018_체스판 다시 칠하기2021-12-07 17:00:01https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 8×8의 크기의 체스판을 만들어야 하는데, 검은색(B)과 흰색(W)이 번갈아서 칠해져 있어야 한다. 이 규칙에 어긋나는 칸은 규칙에 맞게 색을 칠해야 한다. 8×8 크기의 체스판을 잘라 내었을때, 규칙에 맞지 않아 색을 칠해야 하는 최소 칸 수를 출력해야 한다. 제출 전 코드 # 제출전 테스트에서 오답 출력을 발견함 # 31이 정답이나 32가 출력됨 NM = [ 'BBBBBBBBBBBBBB..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_7568_덩치2021-12-05 17:47:08"만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다." 이 문제의 핵심이 되는 문장이다. 덩치 비교 시 몸무게와 키를 각각 비교하게 되는데, 둘 다 비교 대상의 우위에 있다면 상위 등수, 둘 중 하나라도 우위에 있다면 동일한 등수, 둘 두 적다면 하위 등수에 속하게 된다. 사용한 변수 명 N : 총 인원수 lst : 몸무게, 키 리스트(list) x : 몸무게 y : 키 cnt : 등수 카운트(count) rst : 등수 결과(result) 제출 코드 # 조건에 해당되는 경우 등수 +1 누적(결과: 맞았습니다!) N = int(input()) lst = [] for _ in range(N): x, y = map(int, input().split()) lst.append(..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_2231_분해합2021-12-03 16:59:33정수 N이 주어졌을때, 그 정수의 생성자 M을 출력해야 한다. 정수 N은 생성자 M을 이용해 만들어진 숫자다. 공식은 다음과 같다. N = M + M의 각 자리 수의 합 예) 216 = 198 + (1 + 9 + 8) 사용한 함수, 변수 명 N : 입력값 M : 생성자 n : 입력값 매개변수 cons : 생성자 함수(constructor) div : M의 각 자리 수의 합(division) decom : 분해합(decompose) rst : 출력값(result) 1차 시도 # None 미처리(결과: 틀렸습니다) def cons(n): for M in range(1, n+1): div = sum(list(map(int, str(M)))) decom = M + div if decom == n: return ..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_2798_블랙잭2021-12-02 12:38:35N장의 카드가 주어졌을때, 카드 3장의 숫자 합이 M을 넘지 않으면서 M에 최대한 가까운 값을 구해 출력해야 한다. 제출 코드 # for반복문, max함수 이용(결과: 맞았습니다!) def bkj(N, M): rst = [] for i in range(N): for j in range(i+1, N): for k in range(j+1, N): n = lst[i] + lst[j] + lst[k] if n
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_11729_하노이 탑 이동 순서2021-11-30 00:12:54문제 지문의 그림을 보면 원판에 번호가 있다. 이 원판의 번호는 아무 의미 없으므로 무시해야 한다(원판은 크기가 중요). 규칙은 한 번에 한 개의 원판만 옮겨야 하고, 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 하며, 이동 횟수는 최소가 되어야 한다. [그림1]은 이해를 돕기 위해 원판 3개의 경우를 움직이는 그림으로 만들어 보았다. 예제 입력이 3인 경우의 출력 결과는 다음과 같다. 7 # 원판을 옮긴 총 횟수 1 3 # (이하) 원판이 옮겨진 위치(예: 1번 장대에서 3번 장대로 이동) 1 2 3 2 1 3 2 1 2 3 1 3 예제 입력 3인 경우를 [그림2]로 나타내 보았다. 제출 코드 # 재귀함수 이용(결과: 맞았습니다!) def hanoi(n, a, b, c): if n == 1:..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_2447번_별 찍기 - 102021-11-26 16:07:29*** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다(N은 3, 9, 27…). 재귀함수를 이용해 문제를 해결한다. 1차 시도 # 재귀함수 이용(결과: 출력 형식이 잘못되었습니다) def star(N): if N == 1: return ['*'] lst = [] patt = N // 3 for i in star(patt): lst.append(i * 3) for i in star(patt): lst.append(i + ' ' + i) # ' '에 (patt)를 곱해 주어야 한다. for i in star(patt): lst.append(i * 3) return lst print('\n'.join(st..
728x90
반응형