Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- error페이지 설정
- select즐겨찾기
- git
- this()
- 이클립스느림
- Sequence
- 프로그래머스
- sql error [1] [23000]: ora-00001
- 테크톡
- Java
- ecleemma
- 테이블복사생성
- 이클립스로딩
- 이클립스로딩지연
- 메모리낭비적은string연산
- this
- 오버로딩
- 다형성
- 이클립스형광줄
- oracle
- 생성자오버로딩
- 조건위치 효율성
- 오블완
- sql error [947] [42000]: ora-00947
- java크롤링
- unresolved compilation problems
- 이클립스무한로딩
- sql error [936] [42000]: ora-00936
- 우아한테크
- 티스토리챌린지
코딩항해기
[프로그래머스] 끝말잇기 (Python) 본문
이번에는 파이썬으로 같은 문제를 풀이하고 풀이한 사람들과 코드를 공유하고 리뷰하는 시간을 가지며 문제를 풀이했다. 혼자 풀이할 때보다 같이 코드를 공유하고 개선점을 논의하며 발전해나가는 과정이 더 재밌는 것 같다! :D
Python
import math
def solution(n, words):
answer = []
#입력받은 키워드만큼 반복
#배령에 해당 키워드가 있거나 바로 직전 단어의 마지막 단어로 시작하지 않는다면
#i나머지n+1은 번호
#i나누기n+1은 차례
#종료
#기록에 키워드를 저장
#전부 실행했는데도 빈 배열이라면 0,0을 저장
#번호 차례
history = [words[0]] #게임 기록용
for i in range(1,len(words)): #게임 길이만큼 반복
#count, in 둘다 O(n)이지만 count는 끝까지 순회하므로 in이 좀 더 낫다
if words[i] in history or not words[i].startswith(words[i-1].strip()[-1]): #만약 중복된 단어거나, 전의 단어끝과 시작이 일치하지 않는다면
print("words =",words[i], "i =",i, "n =",n)
answer.append(i%n+1) #번호
answer.append(math.floor(i/n+1)) #차례
break
history.append(words[i]) #if문에 걸려 종료되지 않았을 경우 기록에 추가
if not answer : answer = [0,0] #만약 무사히 게임을 다 돌았다면
return answer
print("3,3:",solution(3,["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"]))
print("1,3:",solution(2,["hello", "one", "even", "never", "now", "world", "draw"]))
print("0,0:",solution(5,["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"]))
count 변수를 따로 두고 이중 배열을 통해 풀이한 방법도 있었고, 유효성을 전부 확인한 방법도 있었다. 같은 math를 사용해도 로직 구성에 따라 내림인지, 올림인지가 차이나는 부분이 신기하고 재밌었다.
'problem solving > 코딩 테스트' 카테고리의 다른 글
[프로그래머스] 최소공배수 lcm (Python) (0) | 2024.12.05 |
---|---|
[프로그래머스] 코드연결하기 (JAVA, Python) (0) | 2024.11.26 |
[프로그래머스] 연속된 수의 합 (JAVA, Python) (0) | 2024.11.24 |
[프로그래머스] 로그인 성공? 문제 (JAVA, Python) (2) | 2024.11.23 |
[프로그래머스] JAVA, Python으로 문제풀이 (0) | 2024.11.22 |