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 | 31 |
Tags
- recoverability
- 데이터베이스
- CPU 스케줄링
- 인터럽트
- Extendable hashing
- 프로세스 주소 공간
- 코딩애플
- 운영체제와 정보기술의 원리
- 트랜잭션
- 갤럭시 S24
- 쉬운코드
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 시스템프로그래밍
- 개발남노씨
- SDK
- SQL
- concurrency control
- 김영한
- 백엔드
- B tree 데이터삽입
- 네트워크
- 쉬운 코드
- vite
- 온디바이스AI
- 시그널 핸들러
- 운영체제
- Git
- 코딩테스트 [ ALL IN ONE ]
- 커널 동기화
- 반효경
Archives
- Today
- Total
티끌모아 태산
[백 준/문자열] 1919: 애너그램 만들기 - 파이썬 본문
728x90
https://www.acmicpc.net/problem/1919
1919번: 애너그램 만들기
두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs
www.acmicpc.net
코드 풀이
import sys
input = sys.stdin.readline
s_1 = list(input())
s_2 = list(input())
index = 0
while index < len(s_1):
if s_1[index] in s_2:
s_2.remove(s_1[index])
s_1.remove(s_1[index])
index -= 1
index += 1
print(len(s_1) + len(s_2))
주의 사항
문자열 s_1의 길이가 계속 바뀌므로 for문 대신 while 문을 사용했다. remove로 해당 알파벳을 각각 지워 줄때, s_2.remove를 먼저 해주어야한다. s_1.remove를 먼저 지우니깐 백준에서 런타임 에러 발생. 그리고 remove 할 때 마다 다음 인덱스가 현재 인덱스와 같으므로 index -= 1을 해주었다. 그래야 밑에서 +1을 만나 상쇄되기 때문이다. 잘 이해가 안됐었는데, while문을 디버깅 하면서 보니깐 이해가 됐다.
728x90
'백준 문제' 카테고리의 다른 글
[백 준/구현] 1110: 더하기 사이클 - 파이썬 (1) | 2023.10.05 |
---|---|
[백 준/DFS-BFS] 1926: 그림 - 파이썬 (0) | 2023.02.02 |
[백 준/DFS-BFS] 1260: DFS와 BFS - 파이썬 (0) | 2023.01.29 |