반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Kakao
- IT
- 리눅스
- Spring
- Elasticsearch
- 코딩테스트
- 프로그래머스 #카카오 #IT #코딩테스트
- 프로그래머스
- 쿠버네티스
- 스프링부트
- DPDK
- 백엔드
- 스프링
- 네트워크
- 자바
- docker
- programmers
- 알고리즘
- 개발자
- 도커
- Python
- 운영체제
- 엘라스틱서치
- C
- 파이썬
- 캐시
- 카카오
- Java
- Linux
- springboot
Archives
- Today
- Total
저고데
[프로그래머스]대충 만든 자판 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/160586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드를 작성하기 위한 순서는 다음과 같다.
1. 딕셔너리를 사용하여 해당 알파벳이 몇 번 index인지 만들어준다.
2. 여러 kepmap에 중복되는 알파벳이 있다면 가장 적은 index를 딕셔너리에 넣어준다.
3. targets에 해당하는 알파벳이 딕셔너리에 없다면 -1을 넣어주고 그렇지 않다면 해당 value 값을 더해준다.
def solution(keymap, targets):
answer = []
key = {} #1번
for i in keymap:
for j, k in enumerate(i): #index 번호를 편리하게 측정하기 위해 enumerate를 사용하였다.
if k not in key.keys(): #2번
key[k] = j+1
else: #2번
if key[k] > j+1: #2번 : 더 작은 index로 초기화한다.
key[k] = j+1
for i in targets:
temp = 0
for j in i:
if j not in key.keys(): #3번
temp = -1
break
else:
temp += key[j]
answer.append(temp)
return answer
중복되는 알파벳이 존재하고 또한 그 중에서 가장 작은 index를 구해줘야하기 때문에 중복되지 않는 key 값을 사용하는 딕셔너리를 사용했다.
풀이 과정 중 2번이 풀이의 핵심이었다.
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]이모티콘 할인행사 (0) | 2023.03.07 |
---|---|
[프로그래머스]바탕화면 정리 (0) | 2023.03.07 |
[프로그래머스]디펜스 게임 (0) | 2023.03.04 |
[프로그래머스]길 찾기 게임 (0) | 2023.02.15 |
[프로그래머스]자물쇠와 열쇠 (0) | 2023.02.15 |