본문 바로가기

🔅코딩테스트 공부🔅/❗백준138

[백준] 2615번 오목(python) https://www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 1. 난이도 실버1 2. 내가 작성한 코드 maps = [list(map(int, input().split())) for _ in range(19)] total_arrow = {"down":(1,0),"right":(0,1),'down_right':(1,1),'down_left':(1,-1)} visit_down = [[0] * 19 for _ in range(19)] visit_right = [.. 2023. 4. 25.
[백준] 배열 돌리기(python) https://www.acmicpc.net/problem/17276 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net 1. 난이도 실버2 아래와 같은 규칙을 찾아서 해결하려고 했는데 너무 구현하기 복잡했다. 시계 방향인 경우 중간열 인덱스 => x+2, x+1, x, x-1, x-2 로 이동해야 함 부 대각선 인덱스 => y+2, y+1, y, y-1, y-2로 이동해야 함 등등...... 그래서 결국 노가다로 푸는 걸 택했다. 아직 문제를 푼 사람이 많ㅈㅣ 않아서 좋은 방법을 못 찾음 ㅠㅠ 혹시 알게 되시면 알려주시라유 2. 내가 작성한 코드 1. temp1, t.. 2023. 4. 23.
[백준] 22858번 원상 복구(small)(python) https://www.acmicpc.net/problem/22858 22858번: 원상 복구 (small) 수가 적혀있는 $P_1, P_2, ..., P_N$ $N$개의 카드가 있다. 1부터 N까지 수가 하나씩 존재하는 $D_1, D_2, ... , D_i , ... D_N$ 가 있다. 이때 $D_i$는 $P_{D_i}$ 값을 $i$ 번째로 가지고 오는 것을 의미한다. 이러한 www.acmicpc.net 1. 난이도 실버3 2. 내가 작성한 코드 n, k = map(int, input().split()) end = list(map(int, input().split())) d = list(map(int, input().split())) for i in range(k): middle = [0 for _ in.. 2023. 4. 22.
[백준] 17413번 단어 뒤집기2(python) https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 1. 난이도 실버3 2. 내가 작성한 코드 answer = [] check = True #괄호가 열려있는지 확인 string = list(input()) local = "" for i in range(len(string)): if string[i] == "": #괄호가 닫히면 answer에 local값을 넣어주고 true로 변경 local += string[i] a.. 2023. 4. 21.
[백준] 20291 파일 정리(python) https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 1. 난이도 실버 3 2. 내가 작성한 코드 확장자 별 개수를 세면 되기 때문에 딕셔너리를 이용했다. 1. split(".")을 통해 파일명과 확장자를 분리해준다. 2. key값(확장자명)인 딕셔너리에서, 입력된 확장자가 들어온 적이 없으면 새로 넣어주고 3. 들어온 적 있으면 +1 로 카운팅해준다. 4. key값만 빼서 사전순으로 정리해 준 후 5. 키(확장자명)와 value(파일 개수)를 함께 출력한.. 2023. 4. 20.
[백준] 12933번 오리(python) https://www.acmicpc.net/problem/12933 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net 1. 난이도 실버 3 2. 내가 작성한 코드 사실 문제 자체는 어렵지 않은데 반례를 못 잡아서 그걸 해결하는 부분에서 오~~랜 시간이 걸렸다. 오죽하면 백준 질문게시판에 반례 문의를 남길 정도,, 놓치기 쉬운 부분은 "오리가 울다가 멈췄을 때"인 거 같긴 한데 내가 틀린 이유는 k로 끝난 오리가 있는 여부를 True or False로만 확인했다는 점이다. 이렇게 하면 quack로 끝난 울음소리(최소 오리의 수) 2개 이.. 2023. 4. 20.
[백준] 1747번 소수&팰린드롬(python) https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 1. 난이도 실버1 주의할 부분 1. n으로 1이 주어진 경우 2가 출력되어야 한다. => 예외 처리 필요 2. 주어진 n의 범위가 1000000이지 소수&팰린드롬의 조건을 만족하는 수의 범위가 아니다! 따라서 for문의 범위를 더 크게 잡아줘야 한다. 나는 이 부분을 놓쳐서 엄청나게 틀렸고, 구글링을 한 결과 1000000보다 큰 수 중 조건을 만족하는 가장.. 2023. 4. 19.
[백준] 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.
[백준] 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.