땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • 이것이 리눅스다 with Rocky Linux9
  • I
  • D
  • ㅗ
  • E

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

Algorithm/Algorithm Problem

백준 1251 단어 나누기

2022. 2. 17. 15:41

https://www.acmicpc.net/problem/1251

 

1251번: 단어 나누기

알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다

www.acmicpc.net

1단어를 3개로 나누고 이거에 최소값을 구해야 한다라고 생각했을 때 방법이 막막했다.

 

하지만 python의 max, min함수를 통해 모든 조합의 string을 리스트에 넣고 min함수를 때려버리면 좋겠다고 생각했다.

 

모든조합의  string을 만드려면 3개로 나누는 기준이 필요한데 i j k 3개의 변수를 두고 단어는 무조껀 1개 이상의 문자를 포함하라고 했기 때문에  i : 0 ~ len(data)-2, j : i+1 ~ len(data)-1, k : j+1 ~ len(data)의 조합을 가질 수 있는 것이다.

문자열 slice를 이용하여  reverse를 시키면 끝!

 

data = input()
res = []

for i in range(len(data)-2):
    for j in range(i+1, len(data)-1):
        for k in range(j+1, len(data)):
            temp = data[:j][::-1] + data[j:k][::-1] + data[k:][::-1]
            res.append(temp)
print(min(res))

'Algorithm > Algorithm Problem' 카테고리의 다른 글

백준 18111 마인크래프트  (0) 2022.02.17
백준 1213 & 팰린드롬 알고리즘(Palindrome Algorithm)  (0) 2022.02.17
백준 1991 트리 순회  (0) 2022.02.17
Python Asterisk(*) 사용 용도  (0) 2022.01.03
백준 15649,15650 N과 M(Backtracking)  (0) 2021.11.21
    'Algorithm/Algorithm Problem' 카테고리의 다른 글
    • 백준 18111 마인크래프트
    • 백준 1213 & 팰린드롬 알고리즘(Palindrome Algorithm)
    • 백준 1991 트리 순회
    • Python Asterisk(*) 사용 용도
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바