본문 바로가기

🔅코딩테스트 공부🔅213

[프로그래머스] Level2 큰 수 만들기(python) https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 시간 초과가 발생한 풀이(투포인터) - number의 길이가 1,000,000 자리 수 까지 가능하기 때문에 시간복잡도를 꼭 고려해야하는 문제이다. - 처음에 투 포인터를 이용해 풀었는데, 테스트 케이스 2개(8,10번)의 시간초과를 못 해결해 장렬하게 전사했다. def solution(number, k): answer_len = len(number) - k start = 0 end = 1 .. 2023. 4. 17.
[프로그래머스] Level2 영어 끝말잇기(python) https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 풀이 def solution(n, words): for i in range(len(words)): check = True if words[i] in words[:i]: check = False elif i !=0 and words[i][0] != words[i-1][-1]: check = False if not check: return [i%n+1,i//n+1] return [0.. 2023. 4. 17.
[백준] 20436번 ZOAC 3(python) https://www.acmicpc.net/problem/20436 20436번: ZOAC 3 첫 번째 줄에는 두 알파벳 소문자 sL, sR이 주어진다. sL, sR은 각각 왼손 검지손가락, 오른손 검지손가락의 처음 위치이다. 그 다음 줄에는 알파벳 소문자로 구성된 문자열이 주어진다. 문자열의 www.acmicpc.net 1. 난이도 실버4 2. 내가 작성한 풀이 아스키 코드를 이용해서 규칙성을 찾을 수 있을까 고민했는데 위치에 규칙이 없어서 하나하나 입력해줬다. 차근 차근 조건만 빼먹지 않으면 쉽게 풀 수 있는 문제다. keyboard = [ [['q','ㅂ'],['w','ㅈ'],['e','ㄷ'],['r','ㄱ'],['t','ㅅ'],['y','ㅛ'],['u','ㅕ'],['i','ㅑ'],['o','ㅐ'].. 2023. 4. 17.
[프로그래머스] SQL LEVEL1 문제 풀이 모음 (MySQL) 1. 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID - SELECT에서 모든 컬럼을 출력하기 위해선 * 을 이용한다. - ORDER BY에서 오름차순은 ASC, 내림차순은 DESC - 기본값이 오름차순이기 때문에 굳이 ASC를 작성해줄 필요가 없다. 2. 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; - NAME, DATETIME의 컬럼만 원하기 때문에 SELECT로 선택해준다. - 역순으로 보여달라 했기 때문에 내림차순인 DESE 를 작성해준다. 3. 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDIT.. 2023. 4. 16.
[백준] 1244번 스위치 켜고 끄기(python) https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1. 난이도 실버 4 2. 내가 작성한 코드 출력 형식이 잘못됐다는 에러가 뜨시는 분들은 출력의 조건을 잘 확인하시길 (나도 이걸 놓쳐서 틀렸었다.) * 스위치의 상태를 1번 스위치에서 시작하여 마지막 스위치까지 한 줄에 20개씩 출력한다. 1과 0을 변환해주기 위해 if문을 써도 괜찮지만 (value + 1) % 2 를 해주면 더 간결해진다. n = int(input()) switch = .. 2023. 4. 15.
[백준] 4396번 지뢰 찾기(python) https://www.acmicpc.net/problem/4396 4396번: 지뢰 찾기 지뢰찾기는 n × n 격자 위에서 이루어진다. m개의 지뢰가 각각 서로 다른 격자 위에 숨겨져 있다. 플레이어는 격자판의 어느 지점을 건드리기를 계속한다. 지뢰가 있는 지점을 건드리면 플레이어 www.acmicpc.net 1. 난이도 실버4 2. 내가 작성한 코드 지뢰가 있는 칸이 열렸다면 지뢰가 있는 모든 칸이 별표(*)로 표시되어야 한다. 다른 모든 지점은 온점(.)이어야 한다. 라는 조건이 있어서 "이미 열린 칸"을 포함해서 모두 온점으로 print했더니 틀렸다. 읭? 이라는 생각과 함께 질문게시판을 찾아보니 x에 대해서는(=이미 열린 칸에 대해서) 지뢰의 개수를 표시해줘야 한다고,, 암튼 수정해서 맞출 수 있.. 2023. 4. 14.
[백준] 2578번 빙고(python) https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 1. 난이도 실버 4 2. 내가 작성한 코드 구현 이 친구 문제를 풀 때 생각보다 시간이 오래걸린다. 아직 훈련이 덜 되어 있나 봄 bingo = [list(map(int, input().split())) for _ in range(5)] #최초의 빙고판 answer = [] for i in range(5): #answer을 1차원 배열로 입력 받기 for j in input().split(): answer.a.. 2023. 4. 13.
[백준] 20546번 🐜 기적의 매매법 🐜(python) https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 1. 난이도 실버 5 2. 내가 작성한 코드 import sys input = sys.stdin.readline n = int(input().rstrip()) #주어진 돈 chart = list(map(int, input().rstrip().split())) #주식 정보 BNP = [n, 0] #준현 돈, 주식 수 TIMING = [n, 0] #상민 돈, 주식 수 for .. 2023. 4. 13.
[백준] 14467번 소가 길을 건너간 이유1(python) https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 1. 난이도 브론즈 1 2. 내가 작성한 코드 n = int(input()) #관찰 횟수 cow = {} cnt = 0 for _ in range(n): num, way = input().split() if num not in cow: #만약 딕셔너리에 없으면 key와 value 저장 cow[num] = way else: #이미 관찰된 적 있는 소의 번호인 경우 way를 조사해서 cnt 카운팅 i.. 2023. 4. 12.