코딩테스트 문제 41

[프로그래머스/Python] 시저 암호

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자에 n만큼 더하여 만든 암호 리턴 ord() 와 chr()을 사용 chr(정수) -> 아스키코드 문자로 바꿔줌 ord(문자) -> 아스키코드 숫자로 바꿔줌 ord('a') #97 ord('z') #122 ord('A') #65 ord('Z') #90 #26개가 있음 소문자, 대문자, 공백을 나눠서 생각 if, elif, else로 나눔 알파벳은 총 26개라는 것을 이용 def soluti..

[프로그래머스/Python] 신고 결과 받기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 중복된 신고 제외 k번 이상 신고된 사용자를 '신고한 사람'에게 메일 전송한 값을 리턴 set() 사용 report를 set()를 이용하여 중복 요소 제거 report를 split()하여 신고한 사람(리스트[0])과 신고 당한 사람(리스트[1])을 나눈다 -> ["신고자 id1", "신고당한자 id1"] 2차원 배열 report 예시) [['frodo', 'neo'], ['apeach', '..

[프로그래머스/Python] 둘만의 암호

문제 https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스킵할 알파벳 제외 인덱스만큼 뒤의 알파벳으로 바꿔서 문자열로 리턴 chr() ord() 사용 chr(정수) -> 아스키코드 문자로 바꿔줌 ord(문자) -> 아스키코드 숫자로 바꿔줌 ord('a') #97 ord('z') #122 ord('A') #65 ord('Z') #90 #26개가 있음 a~z까지 아스키코드 숫자를 넣은 리스트 만들기 set() - set() 를 이용한 차집합 + s..

[프로그래머스/Python] 문자열 밀기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr A 문자열을 몇 번 밀면 B가 나오는지 리턴(없으면 -1) 1. 반복문 사용 A[-1] 맨 마지막 문자 A[:-1] 처음부터 맨 마지막 전까지의 문자열 def solution(A, B): answer = -1 #같다면 if A == B: answer = 0 #다르다면 else: #len -1 만큼 돌고 B와 같은지 확인 cnt = 0 for _ in range(len(A)-1): A = A..

[프로그래머스/Python] k의 개수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120887 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr i부터 j까지의 수에서 k가 몇 번 나오는지 리턴 1. count() 사용 i부터 j까지 반복문을 돌면서 정수를 문자로 저장 count()로 갯수 세기 def solution(i, j, k): a = '' for s in range(i, j+1): a += str(s) answer = a.count(str(k)) return answer

[프로그래머스/Python] 369 게임

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120891 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3, 6, 9일 때 박수를 친다 박수 치는 횟수 리턴 1. count() 사용 정수형인 order을 문자열로 바꾼다 count()로 3, 6, 9 갯수 세기 def solution(order): order = str(order) answer = order.count("3") + order.count("6") + order.count("9") return answer 2. map(lambda..

[프로그래머스/Python] 올바른 괄호

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 리스트로 스택을 만들어서 사용 스택: 나중에 들어온 것이 먼저 나간다 문자가 '('면 리스트에 추가 문자가 ')'면 리스트의 맨 뒤 삭제 반복문 돌면서 현재 문자가 ')'인데 리스트의 길이가 0이면 -> ')'가 '(' 없이 사용되는 것이므로 False 리턴 반복문 다 돌았을 때 리스트의 길이가 0이라면 -> 올바른 괄호 사용이므로 True 리턴 리스트의 길이가 1이상이라면 -> '('..

[HackerRank] New Year Chaos

내용 바뀐 대기열을 보고 처음의 대기열과 비교해 최소 바뀐 횟수를 출력. 단 한 사람 당 2번만 바꿀 수 있고, 3번 이상 바꿀 시 Too chaotic을 출력 입력값: t(테스트 횟수), n(롤러코스터 대기자 수), q(바뀐 대기열) 알고리즘 1부터 시작해서 n까지 원래 지점에서 앞으로 몇 번 왔는지 세어 본다(index() 사용). 제자리에 있는 것은 넘어간다 ->Time limit exceeded 참고자료 리스트 삭제 관련 del list /리스트 전체 삭제 del list[인덱스 번호] list.remove(요소) /요소가 없으면 에러 del list[list.index(찾을 요소)] /요소 없으면 에러 list.append(요소), list,insert(인덱스넘버, 요소), list.extend..

[HackerRanck] Grid Challenge

내용 입력된 grid_item을 각각 grid 리스트에 넣어서 각 행을 오름차순으로 정렬. grid의 열을 비교했을 때 오름차순으로 되어 있으면 YES를 리턴, 아니면 NO를 리턴 입력값: t(시험할 테스트 수), n(넣을 행), grid_item(n개의 문자) 알고리즘: grid의 각 행을 오름차순으로 정렬(리스트로 바꿔서 sort() 사용) grid의 열이 오름차순인지 확인. 아니면 NO 리턴, 맞으면 YES 리턴 def gridChallenge(grid): n=len(grid)#행 수 arr=[] for i in range(n): a=[] for j in range (len(grid[0])):#grid의 열 수 만큼 반복 a.append(grid[i][j]) a.sort()#a 오름차순 정렬 arr..