Loading...

[Python] 프로그래머스 - 삼각 달팽이

programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 문제에서는 배열이 삼각형모양으로 주어져 있지만, 왼쪽정렬을 시켜주는게 문제푸는데 도움이 된다. n이 4일때, 왼쪽 정렬을 시켜주면 배열의 모양은 다음과 같다. 1 0 0 0 2 9 0 0 3 10 8 0 4 5 6 7 방향을 꺾어야 하는 수를 보면 n = 4일때 4, 7, 9, 10 에서 꺾어줘야한다. 즉, 꺾는 빈도가 1씩 줄어들고 있음을 알 수 있다. (n = 6일때를 그려서 보..

[Python] 프로그래머스 - 이진 변환 반복하기

programmers.co.kr/learn/courses/30/lessons/70129?language=python3 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 간단하게 문제에서 요구하는대로 풀면 되는 문제이다. 1. cnt에 s문자열 중 0의 갯수를 세서 증가시키고, s에서 0을 제거해준다. 2. new_s에 s의 길이를 2진법으로 변환하면 0b110 이런꼴로 나오기때문에 앞에 0b를 없앤 2번째 인덱스부터 저장해준다. 3. new_s가 '1'이 될때까지 반복 def solution(s): answer = [] cnt, t = 0, 0 while True: t += 1 cnt += s.count('0') s = s.replace('0', '') new_s = bin(len(..

[Python] 프로그래머스 - 신규 아이디 추천

programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 2021 카카오 블라인드 코딩테스트 기출문제이다. '정규표현식(Regular Expression)' 에 대해 묻는 문제이다. 예전에 웹해킹 공부를 잠깐 할 때, 대충 공부해서 잘 생각이 나지 않아 노가다로 일단 풀었다. import re def solution(new_id): # 1단계 answer = new_id.lower() # 2단계 answer = re.sub(..

[Python] BOJ 1283 - 단축키 지정(IZBORNIK)

https://www.acmicpc.net/problem/1283 1283번: 단축키 지정 첫째 줄에 옵션의 개수 N(1 ≤ N ≤ 30)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄에 옵션을 나타내는 문자열이 입력되는데 하나의 옵션은 5개 이하의 단어로 표현되며, 각 단어 역시 10개 이하 www.acmicpc.net 쉬워보여서 덤볐는데, 생각보다 구현과 문자열 처리가 힘들어서 애먹은 문제이다. 1. dic이라는 int형의 defaultdic을 만든다. 2. 입력받는 문자열을 공백 단위로 끊어서 s에 저장한다. 3. s에 저장된 문자열을 돌며 단축키를 지정한다. 3-1. 만약 tf가 True이면 앞의 단어에서 단축키가 설정되었으므로 단어를 tmp에 넣는다. 3-2. 만약 단어의 첫글자가 dic에 ..

[Python] BOJ 3190 - 뱀(zmija)

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 요즘 구현, 시뮬레이션 문제들을 미는 중인데 삼성기출을 풀다 백준문제를 푸니 확실히 쉽게(?) 느껴진다. 시뮬레이션 문제는 말 그대로 주어진 조건을 따라 시뮬레이션을 돌리면 된다. 골드 이상부터는 엄청난 집중력과 끈기, 인내가 필요하다.. (빡구현, 하드코딩) 1. 사과위치를 입력받고 정사각보드m에 사과위치를 -1로 표시해준다. 2. 방향변환정보를 turn이라는 dictionary에 저장한다. 예제 1같..

[Python] 프로그래머스 - 소수 만들기

programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 이제 '소수'하면 바로 에라토스테네스의 체가 떠오른다. 1. nums의 각 원소가 1이상 1000이하이고 서로 다른 3개의 수를 고르는 것이므로 최대값이 2997이다. 널널하게 is_prime을 3000칸 만들어두고 에라토스테네스의 체를 사용하여 소수이면 그 index를 True로, 아니면 False로 만든다. 2. prime = is_primes(3000..

[Python] BOJ 2589 - 보물섬

www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 1. 보물 -> 육지 사이의 최장거리이므로 지도(m)을 입력받고 지도에 있는 모든 육지좌표를 land배열에 저장한다. 2. bfs함수: visited배열초기화, dist배열 0으로 초기화, (i, j) 시작지점에 대해 deque에 넣고 bfs를 돌린다. 만약 상하좌우 칸에 방문하지 않았고, 그 칸이 육지라면 거리를 1증가시킨다. 최종적으로 거리의 최댓값을 return (27번째 줄 코드는 2차원 배열에서 최댓값을 ..

[Python] BOJ 18110 - solved.ac

www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 쉬운 문제이지만, 파이썬의 허점(?)을 알 수 있는 문제였다.. 파이썬은 다른 언어와 다르게 반올림을 할 때 사사오입이 아닌 오사오입이다. www.omnibuscode.com/board/board_devcommon/43652 OMNIBUSCODE [개발상식] - 반올림하는 두 가지 방법 (Round-off(사사오입), Round-to-nearest-even(오사 오입)) 1. 근사값..