본문 바로가기

전체 글229

[백준] 1913번 달팽이(python) https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 1. 난이도 실버3 2. 내가 작성한 풀이 숫자가 커지는 방향으로 구현하면 방향전환이 너무 많이 일어날 것 같아 큰 수 부터 작은 수를 채우는 방향으로 구현했다. 1. 배열을 n*n으로 선언한다. 2. 각 layer 마다 왼쪽 꼭짓점은 (i,i)값으로 채워주고, 아래, 오른쪽, 위, 왼쪽 순서대로 이동한다. + 이미 왼쪽 꼭짓점이 채워져있기 때문에 왼쪽으로 이동할 경우 1번 덜 움직인다. 3. 2번.. 2023. 4. 18.
[프로그래머스] 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 LEVEL2 문제 풀이 모음 (MySQL) 1. 최솟값 구하기 SELECT MIN(DATETIME) FROM ANIMAL_INS - 컬럼 이름은 일치하지 않아도 되기 때문에 AS를 이용할 필요는 없다. 2. 고양이와 개는 몇 마리 있을까 SELECT ANIMAL_TYPE, COUNT(*) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; - 개와 고양이(ANIMAL_TYPE)의 각각의 숫자를 출력 해줘야 하기 때문에 GROUP BY 한다. - ANIMAL_TYPE과 함께 COUNT를 사용한 컬럼을 출력하면 된다. 3. 동명 동물 수 찾기 SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME .. 2023. 4. 16.
[프로그래머스] 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.