Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준 12761번
- 자바 디자인패턴
- golang struct
- String 함수
- 백준 12761
- ddd
- 정렬
- 도메인 주도 개발
- 하둡
- hadoop
- http 개념
- 자바
- golang
- 백준 파이썬
- http 완벽가이드
- 12761 돌다리
- 백준
- 몽고디비 렘
- flask
- 백준 사이트
- 12761번 돌다리
- 도메인 주도 개발 시작하기
- 우분투
- 고 배열
- 트리 순회
- 파이썬
- 자바 디자인 패턴
- go
- MongoDB Realm
- domain driven develop
Archives
- Today
- Total
개발바닥
BOJ_9081 [ 단어 맞추기 ] 본문
반응형
https://www.acmicpc.net/problem/9081
문제 풀이
주어진 문자에 다음 문자를 찾는 문제이다.
다음 문자를 찾기 위해서 알파벳 간에 비교를 통해 변경할 위치를 찾는다.
변경할 위치가 i,j 라면
i는 arr[i-1] < arr[i] 조건에 해당되는 i 최댓값을 찾는다.
j는 arr[i-1] < arr[j] 조건에 해당되는 j 최댓값을 찾는다.
그 후 arr[i-1] <-> a[j] 알파벳 변경 위치를 변경한다.
arr[i:] 이후 문자 오름차순 정렬 후 붙이면 된다.
정답 소스
from sys import stdin
for t in range(int(stdin.readline())):
inputString = list(stdin.readline().rstrip())
length = len(inputString)
i, j = 0, 1
# 바꿀 위치 찾는다.
for idx in range(1, length):
if inputString[idx] > inputString[idx - 1]:
if i < idx:
i = idx
for idx in range(1, length):
if inputString[idx] > inputString[i - 1]:
if j < idx:
j = idx
if i != 0 and j != 0:
inputString[i-1], inputString[j] = inputString[j], inputString[i-1]
inputString[i:] = sorted(inputString[i:])
print(''.join(inputString))
반응형
'[ Algorithm ] > [ BOJ ]' 카테고리의 다른 글
BOJ_5397 [ 키로거 ] (0) | 2023.03.04 |
---|---|
BOJ_15653 [ 구슬 탈출4 ] (0) | 2020.06.30 |
BOJ_10942 [ 팰린드롬? ] (1) | 2020.06.09 |
BOJ_14442 [ 벽 부수고 이동하기 2 ] (0) | 2020.06.07 |
BOJ_16935 [ 배열 돌리기 3 ] (0) | 2020.05.07 |
Comments