soulfever01의 등록된 링크

키자드에 등록된 총 165개의 포스트를 확인하실 수 있습니다.

Naver Blog

땅따먹기 (Python) [프로그래머스 문제풀이]

Level 2. 땅따먹기 #연습문제 문제 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution 함수를 완성해 주세요. 위.......

Naver Blog

다음 큰 숫자 (Python) [프로그래머스 문제풀이]

Level 2. 다음 큰 숫자 #연습문제 문제 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예 입출력 예 설명 입출력 예 1) 문제 예시와 같습니다. 입출력 예 2) 15(1111)의 다음 큰 숫자.......

Naver Blog

n진수 게임 (Python) #KAKAO [프로그래머스 문제풀이]

Level 2. n진수 게임 (2018 KAKAO BLIND RECRUITMENT) 문제 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 경우, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, … 순으로 숫자를 말하면 된다. 한편 코딩 동아리 일원들은 컴퓨터를 다.......

Naver Blog

올바른 괄호 (Python) [프로그래머스 문제풀이]

Level 2. 올바른 괄호 #연습문제 문제 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있.......

Naver Blog

9663_N-Queen (Python) [백준 문제풀이]

9663_N-Queen (Python) 알고리즘 분류 #브루트포스 #백트래킹 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예제 입력 1 8 예제 출력 1 92 힌트 ??? 방법 1 (시간초과) DFS 깊이우선탐색을 사용한다고 생각했다 깊이가 1 증가하는 것을 밑으로 체스판에서 밑으로 한 줄씩 내려가는 것으로 생각했다 먼저 li에 좌표들을 넣어보면서 check 리스트로 수직방향으로 만나는지 체크하고, for문으로 대.......

Naver Blog

1764_듣보잡 (Python) [백준 문제풀이]

1764_듣보잡 (Python) 알고리즘 분류 #자료 구조 #문자열 #정렬 #해시를사용한집합과맵 #해시 #집합 문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다. 듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마.......

Naver Blog

N개의 최소공배수 (Python) [프로그래머스 문제풀이]

Level 2. N개의 최소공배수 #연습문제 문제 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 방법 요소가 최대 15개 이하인 배열이면서 요소는 100이하 자연수다 1부터 모든 숫자를 다 따져서라도 하든 어.......

Naver Blog

JandenCase 문자열 만들기 (Python) [프로그래머스 문제풀이]

Level 2. JadenCase 문자열 만들기 #연습문제 문제 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 ) 입출력 예 방법 1. 일단 대문자가 있으면 안되기 때문에 s.lower()을 통해서 소문자로 만들었다 2. for 문으로 s의 문자를 하나씩 꺼낸다 3. s의 첫 글자( i == 0 ) 나 앞 글자가 ' &.......

Naver Blog

행렬의 곱셈 (Python) [프로그래머스 문제풀이]

Level 2. 행렬의 곱셈 #연습문제 문제 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. 입출력 예 방법 1. answer 리스트를 크기에 알맞게 만든다 2. sum 함수를 사용해 더한 값들을 answer[i][k]에 넣는다 출처: 프로그래머스 코딩 테스트 연습 https://programmers.co.kr/learn/challenges #프로그래머스 #Programmers #Python #파이썬 #Python #알고리즘 #Algorithm #코딩테스트 #문제풀이 #Level_2

Naver Blog

피보나치 수 (Python) [프로그래머스 문제풀이]

Level 2.피보나치 수 #연습문제 문제 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 n은 2 이상 100,000 이하인 자연수입니다. 입출력 예 입출력 예 설명 피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ........

Naver Blog

최솟값 만들기 (Python) [프로그래머스 문제풀이]

Level 2. 최솟값 만들기 #연습문제 문제 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4.......

Naver Blog

최댓값과 최솟값 (Python) [프로그래머스 문제풀이]

Level 2. 최댓값과 최솟값 #연습문제 문제 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 방법 1 (max_size 사용) 파이썬에서 가장 값을 사용할 때는 어떤 방식으로 해야하는지 알아보고 싶어서 찾아보다가 sys.maxsize를 알게 됐다 이 수를 기준으로 가장 큰 수, 가장 작.......

Naver Blog

43_문자열 가운데, 오른쪽, 왼쪽 정렬하기 (+ zfill) [Python_코딩도장]

1. 문자열 가운데 정렬 (center) 2. 문자열 오른쪽 정렬 (rjust) 3. 문자열 왼쪽 정렬 (ljust) 4. 문자열 왼쪽에 0 채우기 (zfill) 1. 문자열 가운데 정렬 (center) 문자열의 양쪽을 ' '(스페이스바)를 넣어서 가운데 정렬을 하고 싶을 때 사용한다 문자열 가운데 정렬을 했을 때, 좌우의 길이가 1씩 차이가 나야하는 상황에서는 - 문자열 문자 개수가 짝수, 원하는 문자열 길이가 홀수 라면 앞쪽이 1칸 더 길다 - 문자열 문자 개수가 홀수, 원하는 문자열 길이가 짝수 라면 뒤쪽에 1칸 더 길다 소울치킨 4글자로 된 문자열을 center(10)으로 10글자 내에 가운데 정렬을 하면 (스페이스바 3번+소울치킨+스페이스바 3번) center(9)으로.......

Naver Blog

5430_AC (Python) [백준 문제풀이]

5430_AC (Python) 알고리즘 분류 #구현 #자료구조 #문자열 #파싱 #덱 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 숫자를 버리는 함수이다. 배열의 초기값과 수행할 함.......

Naver Blog

숫자의 표현 (Python) [프로그래머스 문제풀이]

Level 2. 숫자의 표현 #연습문제 문제 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한사항 n은 10,000 이하의 자연수 입니다. 입출력 예 방법 1. i가 1부터 n까지 나오는 for 문을 만든다 2. 그 안에 또 j가 i+1부터 n까지 나오는 for문을 만든다 3. 나오는 수 들을 모두 더.......

Naver Blog

1074_Z (Python) [백준 문제풀이]

2581_소수 (Python) 알고리즘 분류 #분할정복 #재귀 문제 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 크기가 2N-1 × 2N-1로 4등분 한 후에 재귀적으로 순서대로 방문한다. 다음 예는 22 × 22 크기의 배열을 방문한 순서이다. N이 주어졌을 때, r행 c열을 몇 번째로 방문하는지 출력하는 프로그램을 작성하시오. 다음은 N=3일 때의 예이다. 입력 첫째 줄에 정수 N, r, c가 주어진다. 출력 r행 c열을 몇 번째로 방문했는지 출력한다. 제한 1 ≤ N ≤ 15 0 ≤ r, c < 2N 예제 입출.......

Naver Blog

12_블록 요소와 인라인 요소 (block,inline) [HTML]

블록(block) 요소와 인라인(inline) 요소 블록요소의 예 : div, h1, p - 사용 가능한 최대 가로 너비를 사용한다 - 크기를 지정할 수 있다 인라인 요소의 예 : span, img - 필요한 만큼의 가로 너비를 사용한다 - 크기를 지정할 수 없다 아래처럼 HTML 파일에 DIV, SPAN TAG를 넣는다 그리고 CSS 파일에서 두 TAG를 조정 해준다. CSS에서 DIV, SPAN에 아래의 코드를 추가해보면 인라인 요소는 크기가 변하지 않음을 알 수 있다 블록 요소의 특징 - width:100%; height:0; 으로 시작한다 높이는 포함하고 있는 요소의 높이만큼 만들어지게 된다 - 수직으로 쌓인다 - margin, padding 위 아래 좌 우 여백을 온전히 사용할 수 있다 인라인 요소의 특.......

Naver Blog

13_display : 블록을 인라인으로, 인라인을 블록으로 [HTML]

display : 블록을 인라인으로, 인라인을 블록으로 CSS에서 display를 사용하면 블록 태그를 인라인으로, 인라인 태그를 블록으로 바꿀 수 있다 HTML에서 아래와 같이 div(블록), span(인라인)이 있다고 생각해보자 CSS에서 display 속성을 바꾸느냐 안바꾸느냐에 따라의 변화를 아래 캡처에 남긴다 아래 코드는 속성을 바꾼 모습인데, display 속성을 지우면 왼쪽, 있으면 오른쪽 캡처본이 된다 #HTML #Hyper #Text #Markup #Language #Web #FrontEnd

Naver Blog

41_리스트 안에 for, if 문 넣기 (리스트 표현식 list comprehension) [Python_코딩도장]

리스트 안에 for, if 문 넣기 (리스트 표현식 list comprehension) - 1부터 10까지 숫자를 리스트로 한 번에 묶고 싶다 - 20보다 작거나 같은 짝수만 리스트로 묶고 싶다 - 리스트 만들 때 if 문으로 제어하고 싶다 - 여러 줄 들어온 인풋을 한 번에 리스트로 묶고 싶다 - for 문 2개가 들어간 리스트? 같은 상황일 때, 리스트 표현식을 사용한다 1부터 10까지 숫자를 리스트로 한 번에 묶기, 20보다 작은 짝수만 리스트로 묶기 처음 볼 리스트 표현식은 리스트 안에 for 문을 넣는 방식이다 예시를 통해 확인하자 리스트 표현식을 만들 때 if 문으로 제어하기 if 문을 통해서 식을 제어할 수 있다 더 디테일하게 리스트 표현식을 만들 때 필요하.......

Naver Blog

42_문자열 분리하기, 연결하기 (split, join) [Python_코딩도장]

- 문자열 분리해서 리스트 만들기 (split) - 분리된 문자열 리스트 연결하기 (join) 문자열 분리해서 리스트 만들기 (split) input 함수를 받을 때 split 을 사용할 때가 있다 이 split 매소드는 문자열을 괄호 안에 들어간 문자를 기준으로 문자열을 분리해 리스트로 만들어준다 예를 들어 알아보자. song_cry 문자열은 가수가 노래를 부를 때와 숨을 쉴 때를 띄어쓰기로 구분했다. 리스트로 바꿔본다 문자열을 나누는 기준이 문자열인 경우도 있다 아래는 '.' (점)을 통해서 문자열을 나눈 리스트다 분리된 문자열 리스트 연결하기 (join) 방금까지 split으로 나눈 문자열로 된 리스트를 다시 문자열로 돌려놓고 싶어졌다 str 함수를.......

Naver Blog

map 함수 정복하기 [Python]

map 함수 사용법 나는 list함수, input 을 받을 때 map 함수를 사용한다고 배웠다 input을 받을 때 사용하는 경우 list 내용을 바꾸고 싶을 때 (list 안에 모두 int 형태인데, str로 바꾸고 싶다거나) map 함수 안에 있는 두 변수는 어떤 것을 의미하는 것일까 1. input().splt(), list가 아니더라도 반복가능한객체(iterable)라면 모두 사용 가능하다 2. int, str 같은 변수 형태가 아니더라도 함수면 모두 가능하다 야식 리스트의 문자열들을 모두 앞 뒤에 11을 붙히고 싶다고 생각했다 이런 함수에 리스트의 모든 요소를 적용한다면 가능하다 이런 맵핑(map)의 기능을 map 함수가 도와준다 3. 함수를 넣을 수 있다면 람다(lambda)를 사용할 수.......

Naver Blog

2446_별 찍기 - 9 [백준 문제풀이]

2446_별 찍기 - 9 (Python) 알고리즘 분류 #구현 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 x 라는 변수를 미리 정해놓고, for 문으로 i가 진행될 때마다 1을 더하거나 뺏다 (i < n일 떄는 더하고, 반대는 뺀다) 문자열 곱하기 방법을 사용했다 방법 2 백준의 별찍기 - 5,6 (2442,2443번 문제)를 합치면 모래시계 모양이 나온다 별찍기 - 5, 6 문제 풀이 게시글엔 몇 가지 풀이를 적어놨다 링크는 아래에 있다 https://blog.naver.com/soulfever01/222563820072 https://blog.naver.co.......

Naver Blog

별 찍기 문제 해설 (2) [별 찍기 컬렉션_Python]

별 찍기 문제 요즘 블로그에 별찍기 문제에 관한 검색 유입이 많다 복수전공으로 C 언어를 처음 배웠을 때 실습이 아닌 과제의 명목으로 나왔던 첫 문제가 별 찍기였다 학교 과제로 풀었던 문제의 수준은 백준의 별찍기 - 1 부터 별찍기 - 9 를 풀 줄 안다면 충분히 풀 수 있는 문제였다 별찍기 - 10 문제부터는 조금 다른 문제라서 백준에서 딱 이 9문제를 위주로 다루려고 한다 학교 과제 때문에 이 게시글을 들어온 사람이 있다면 충분히 고민해보고 정말정말 안되겠다 싶을 때 힌트를 얻고자 읽었으면 한다 ( + 생각보다 글이 길어져서 파트를 2개로 나눴다 앞선 파트에서 목차의 00 ~ 05까지 다루고 이 글에선 06 ~ 10을 다룬다) (파트 1 링.......

Naver Blog

크래인 인형뽑기 게임 (Python) #KAKAO [프로그래머스 문제풀이]

Level 1. 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴십) 문제 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가.......

Naver Blog

키패드 누르기 (Python) #KAKAO [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 #2020카카오인턴십 문제 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운.......

Naver Blog

숫자 문자열과 영단어 (Python) #KAKAO [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 #2021카카오채용연계형인턴십 문제 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어.......

Naver Blog

신규 아이디 추천 (Python) #KAKAO [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 (2021 KAKAO BLIND RECRUITMENT) 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마.......

Naver Blog

로또의 최고 순위와 최저 순위 (Python) [프로그래머스 문제풀이]

Level 1. 로또의 최고 순위와 최저 순위 (2021 Dev-Matching: 웹 백엔드 개발자) 문제 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니.......

Naver Blog

2438_별 찍기 - 1 [백준 문제풀이]

2438_별 찍기 - 1 (Python) 알고리즘 분류 #구현 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 5 예제 출력 1 * ** *** **** ***** 방법 1 중복 for 반복문을 통해 계단식으로 출력한다 방법 2 중복 반복문이 아니라 0번째 줄이면 1개, 1번째 줄이면 2개... 이런 식이기 때문에 '*' * (i + 1)으로 해결한다 출처: Baekjoon Online Judge https://www.acmicpc.net/ #백준 #BAEKJOON #Python #파이썬 #Python #알고리즘 #Algorithm #코딩테스트 #문제풀이

Naver Blog

2439_별 찍기 - 2 [백준 문제풀이]

2439_별 찍기 - 2 (Python) 알고리즘 분류 #구현 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 5 예제 출력 1 방법 1 중복 for 반복문을 통해 계단식으로 출력한다 공백이 들어가는 왼쪽 부분과 별이 찍히는 부분을 if 문으로 구분했다 방법 2 중복 반복문이 아니라 0번째 줄이면 1개, 1번째 줄이면 2개... 이런 식이다 공백의 경우 i 번째 줄에선 (a - i - 1)개가 들어가고 별은 (i + 1)개가 찍힌다 방법 3 방법 2에서 공백.......

Naver Blog

2440_별 찍기 - 3 [백준 문제풀이]

2440_별 찍기 - 3 (Python) 알고리즘 분류 #구현 문제 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 중복 for 반복문을 통해 출력했다 j 가 i 보다 클 때만 '*'을 출력하도록 했다 방법 2 중복 반복문이 아니라 0번째 줄이면 n개, 1번째 줄이면 (n-1)개... i 번째 줄이면 (n - i)개의 별을 찍도록 했다 출처: Baekjoon Online Judge https://www.acmicpc.net/ #백준 #BAEKJOON #Python #파이썬 #Python #알고리즘 #Algorithm #코딩테스트 #문제풀이

Naver Blog

2441_별 찍기 - 4 [백준 문제풀이]

2441_별 찍기 - 4 (Python) 알고리즘 분류 #구현 문제 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 중복 for 반복문을 통해 계단식으로 출력한다 i 번째 줄에서 i보다 j가 작거나 같을 때만 별을 찍는 방식이다 방법 2 첫 줄에선 0개의 공백, n개의 별 찍기 다음 줄에선 1개의 공백, (n-1) 개의 별 찍기가 들어간다 반복문을 중복해서 쓰지 않고 풀이한 방법이다 방법 3 방법 2에서 스페이스바(공백) 찍.......

Naver Blog

2442_별 찍기 - 5 [백준 문제풀이]

2442_별 찍기 - 5 (Python) 알고리즘 분류 #구현 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 문자열 곱하기 방법을 사용했다 각 줄마다 공백의 개수는 하나씩 줄고, 찍히는 별은 2개씩 늘어난다 방법 2 2중 for문을 사용한다면 아래처럼 사용해야할 것 같다 방법 3 문자열 오른쪽 정렬 방법을 사용한다 (rjust) 별을 찍고 오른쪽으로 정렬하기 때문에 자동으로 공백(스페이스바)가 찍힌다 방법 4 (정답 처리는 안됨.......

Naver Blog

2443_별 찍기 - 6 [백준 문제풀이]

2443_별 찍기 - 6 (Python) 알고리즘 분류 #구현 문제 첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 문자열 곱하기 방법을 사용했다 각 줄마다 공백의 개수는 하나씩 늘고, 찍히는 별은 2개씩 줄어든다 방법 2 2중 for문을 사용한다면 아래처럼 사용해야할 것 같다 방법 3 문자열 오른쪽 정렬 방법을 사용한다 (rjust) 방법 1을 더 편하게 사용한 방법이다 별을 찍고 오른쪽으로 정렬하기 때문에 자동으로 공백(스페이.......

Naver Blog

별 찍기 문제 해설 (1) [별 찍기 컬렉션_Python]

별 찍기 문제 요즘 블로그에 별찍기 문제에 관한 검색 유입이 많다 복수전공으로 C 언어를 처음 배웠을 때 실습이 아닌 과제의 명목으로 나왔던 첫 문제가 별 찍기였다 학교 과제로 풀었던 문제의 수준은 백준의 별찍기 - 1 부터 별찍기 - 9 를 풀 줄 안다면 충분히 풀 수 있는 문제였다 별찍기 - 10 문제부터는 조금 다른 문제라서 백준에서 딱 이 9문제를 위주로 다루려고 한다 학교 과제 때문에 이 게시글을 들어온 사람이 있다면 충분히 고민해보고 정말정말 안되겠다 싶을 때 힌트를 얻고자 읽었으면 한다 ( + 생각보다 글이 길어져서 파트를 2개로 나눴다 이 글에선 목차의 00 ~ 05까지 다루고 다음 파트에서 나머지를 다룬다) (파트 2 링.......

Naver Blog

2444_별 찍기 - 7 [백준 문제풀이]

2444_별 찍기 - 7 (Python) 알고리즘 분류 #구현 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 x 라는 변수를 미리 정해놓고, for 문으로 i가 진행될 때마다 1을 더하거나 뺏다 (i < n일 떄는 더하고, 반대는 뺀다) 문자열 곱하기 방법을 사용했다 방법 2 백준의 별찍기 - 5,6 (2442,2443번 문제)를 합치면 마름모 모양이 나온다 별찍기 - 5, 6 문제 풀이 게시글엔 몇 가지 풀이를 적어놨다 링크는 아래에 있다 https://blog.naver.com/soulfever01/222563820072 https://blog.naver.com/.......

Naver Blog

2444_별 찍기 - 8 [백준 문제풀이]

2445_별 찍기 - 8 (Python) 알고리즘 분류 #구현 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 예제 출력 1 방법 1 x 라는 변수를 미리 정해놓고, for 문으로 i가 진행될 때마다 1을 더하거나 뺏다 (i < n일 떄는 더하고, 반대는 뺀다) 문자열 곱하기 방법을 사용했다 방법 2 백준의 별찍기 - 5,6 (2442,2443번 문제)를 합치면 모래시계 모양 (별찍기 - 9, 2446번 문제)을 만들 수 있다 모래시계 모양에서 '*'를 ' '로, ' '를 '*'로 바꾼다는 발상으로 시작했다 공.......

Naver Blog

우아한 테크코스 온라인 코딩테스트 후기

우아한 테크코스 어제 우아한 테크코스 온라인 코딩테스트를 봤다 (21.11.07 12시부터 16시까지 진행됐다) 코딩 공부를 하면서 처음하는 도전이었다 문제에 대해 유출 금지라 말할 수 없지만 그렇게 어려운 문제는 없었다 (백준 실버 수준, 프로그래머스 level 2 중간 수준정도로 할 줄 알면 충분할 듯 하다) 그래서 자소서와 프리코스 이후 2차 테스트가 더 중요하지 않을까 생각한다 테스트에서 변별력을 느끼지 못해 자소서를 만족스럽게 쓰지 못한 점이 아쉬웠다 (2021.11.19. 1차 합격했습니다!) 온라인 코딩테스트 4시간 7문항이 출제됐다 어려운 문제는 사실 없었다 어떻게보면 당연했다 다른 사람이랑 같이 풀어도 확인할 방법이 없는데.......

Naver Blog

내적 (Python) [프로그래머스 문제풀이]

Level 1. 내적 #월간코드챌린지시즌1 문제 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 입출력 예 설명 입출력 예 1) a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다. 입출력 예 2) a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1) = -2 입니다. 방법 간단했다. 하나 씩 곱해서 더하면 되기 때문에 sum 함수를 사용했다 sum 함수는 굳이 리.......

Naver Blog

음양더하기 (Python) [프로그래머스 문제풀이]

Level 1. 음양 더하기 #월간코드챌린지시즌2 문제 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 입출력 예 설명 입출력 예 1) signs가 [true,false,true] 이므로, 실제 수들의 값.......

Naver Blog

없는 숫자 더하기 (Python) [프로그래머스 문제풀이]

Level 1. 없는 숫자 더하기 #월간코드챌린지시즌3 문제 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 수 ≤ 9 numbers의 모든 수는 서로 다릅니다. 입출력 예 입출력 예 설명 입출력 예 1) 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 2) 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다. 방법 간단한 문제였다. 0부터 9까지 더하면 45다. numbers의 요소들의 합을 sum으로.......

Naver Blog

38_리스트 복사하기 (copy, deepcopy) [Python_코딩도장]

- 리스트를 왜 복사할까? - 리스트를 복사하는 방법 - 2차원 리스트는 안되는데요? - copy 모듈 사용하기 리스트를 왜 복사할까? a = [1, 2, 3, 4] 리스트가 이미 있는 상태에서, b 리스트를 a와 똑같이 만들고 싶다면 당연하게 b = a 를 사용할 것이다 근데 이 방법엔 하나의 맹점이 있다 이어서 아래와 같이 작성하면 요오상스러운 상황이 나타난다 a 의 인덱스를 바꿨더니 b의 인덱스도 바뀐 요상스러운 상황이 나타났다 이 상황을 해결하고자 한다면 copy 매소드를 사용해야한다 리스트를 복사하는 방법 - list.copy( ) : 리스트 뒤에 copy() 매소드를 사용한다 a == b지만 a는 b는 아니다 a와 b는 다르지만 값은 같다 라.......

Naver Blog

39_리스트에서 하나씩 출력하기 (+ enurmerate 사용하기) [Python_코딩도장]

- for문을 사용해 알고 있는 방법으로 출력하기 - for 문을 더 간단하게 사용하는 방법 - 인덱스 번호도 출력하기 (enurmerate 사용하기) - enurmerate 응용하기 for문을 사용해 알고 있는 방법으로 출력하기 for 문을 이미 알고 있다면 리스트를 출력할 수 있다 인덱스 번호 순서대로(0부터 len(a) - 1까지) 출력하는 방법이다 그렇지만 더 직관적으로 하나씩 꺼내서 출력하는 방법이 있다 for 문을 더 간단하게 사용하는 방법 - for 요소 in 리스트 : 아래의 예시에서 i를 요소로, a를 리스트로 했다 리스트 a의 요소(i)를 하나씩 꺼내 사용할 수 있다 인덱스 번호도 출력하기 (enurmerate 사용하기) - for index, value in enurmerate(리스트.......

Naver Blog

계란라면 + 참치김밥 (상수 봉봉) [홍대학식투어]

홍대학식투어 다른 학교의 학식이 부러웠던 적이 있다 다양한 메뉴. 싼 가격. 부러웠다 급식처럼 나오는 홍대의 4200원짜리 학식은 그것만의 매력이 있을 것이다 그러나 나는 학식을 대체할 식당들을 찾아 투어를 떠난다 홍대 근처의 식당 물가는 가성비를 찾기 쉽지 않았고 그마저도 코로나 시국을 거치며 사라져가고 있다 나는 홍대 가성비 식사 문화를 기록하고자 한다 " ㄷㄷ 야무지네 " 국민음식하면 떠오르는 메뉴가 있다 그 중에서 라면, 김밥은 빠진 적이 없다 김밥 천국, 김밥 나라. 에스파처럼 하나의 세계관을 진작 구축한 '김밥'의 힘은 '국민'이 붙기에 부족함이 없다 그리고 한국인이 가장 사랑하는.......

Naver Blog

1912_연속합 [백준 문제풀이]

1912_연속합 (Python) 알고리즘 분류 #다이나믹프로그래밍 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 입력 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력 첫째 줄에 답을 출력한다. 예제 입력 1 10 10 -4 3 1 5 6 -35 12 21 -1 예제 출력 1 33 .......

Naver Blog

40_리스트 (튜플) 전체 합 구하기(sum), 최대값, 최소값(max,min) 구하기 [Python_코딩도장]

목차 - 리스트 전체 합 구하기 (sum 함수 사용하기) - 최대값, 최소값 구하기 (max, min 함수 사용하기) 리스트 전체 합 구하기 (sum 함수 사용하기) 리스트나 튜플 등등에서 모든 수의 합을 구해야할 때 가장 먼저 떠오르는 방식은 for 문이다 a = [1, 2, 3, 4, 5] 라는 리스트가 있다고 하자, 모든 요소의 합을 구한다면 15가 될 것이다 이 과정은 번거롭다. for 문도 써야하고 count 라는 변수도 선언해야하는 등 번거롭다 이때 사용하는 함수가 sum이다 - sum(리스트 or 튜플 or 무언가) 이 sum 함수는 굳이 리스트, 튜플이 아니더라도 반복가능한 객체(iterable)라면 모두 가능하다 반복 가능한 객체가 모두 가능하다는 말은 아래와 같.......

Naver Blog

파이썬에서 스택, 큐 구현하기 [Python]

목차 - 스택(stack)과 큐(queue) - 스택(stack) 구현하기 - 큐(queue) 구현하기 - deque 사용하기 스택(stack)과 큐(queue) 스택은 통 안에 물건들을 차례대로 넣고 차례대로 꺼내는 방식이다 끝이 막혀있고 입구와 출구가 같은 프링글스 통 느낌의 자료구조다 가장 먼저 통에서 뺄 수 있는 요소는 가장 마지막에 넣은 요소가 된다 큐는 입구와 출구가 따로 있는 파이프와 같은 형태를 생각하면 된다 가장 먼저 파이프에 넣은 물건이 가장 먼저 나오고, 가장 늦게 넣은 물건이 가장 늦게 나온다 스택(stack) 구현하기 파이썬에선 리스트가 스택을 구현하기 아주 편하게 되있다 원통에 과자를 담는다고 생각해보면서 append(push를 할 때 사용), p.......

Naver Blog

9935_문자열 폭발 (Python) [백준 문제풀이] (수정예정)

2581_소수 (Python) 알고리즘 분류 #자료 구조 #문자열 #스택 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA&quo.......

Naver Blog

완주하지 못한 선수 (Python) [프로그래머스 문제풀이]

Level 1. 완주하지 못한 선수 #해시 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 입출력 예.......

Naver Blog

소수 만들기 (Python) [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 (Summer / Winter Coding(~2018)) 문제 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 입출력 예 설명 입출력 예 1) [1,2,4]를 이용해서 7을 만들 수 있습니다. 입출력 예 2) [1,2,4]를 이용해서 7을 만들 수 있.......

Naver Blog

2021. 10월 결산 [월간소울치킨]

9월 26일부터 블로그를 시작해 10월까지 100개가 조금 넘는 게시글을 올렸다 이번 1달 동안의 일들을 기록하려고한다 9월 21일정도에 휴학을 하고 명절을 지나 9월 24일정도에 코딩공부를 시작했다 휴학이후의 삶과 코딩공부는 블로그 운영과 같이 이뤄졌다고 볼 수 있다 공부를 한 내용을 정리하면서 복습하는 취지로 블로그를 시작했다 그리고 지금은 그저 정리가 아니라 나처럼 처음 공부했을 때, 나중에 내가 까먹었을 때 궁금할 수 있는 내용을 바로 찾을 수 있도록 짧은 호흡으로 간단하게 정리되게 적고있다 다른 사람들이 나와 비슷한 고민을 하며 검색을 하고 이 블로그를 찾는 경우가 생기고 있다 블로그에 진심이되고 동기부여가 되는.......

Naver Blog

2016년 (Python) [프로그래머스 문제풀이]

Level 1. 2016년 (연습문제) 문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 방법 직관적으로 생각하려고 했다 1. 각 월의 일 수는 31,29,31, ... , 31 이므로 month 리스트로 정리했다. 1월.......

Naver Blog

K번째 수 (Python) [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 #정렬 문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는.......

Naver Blog

체육복 (Python) [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 #탐욕법 #Greedy 문제 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 입출력 예시 방법 1. set 연산을 사용해 잃어버린 사람 중, 예비용이 있는 사람을 제외했다. 그리고 리스트화 했다 (lost_man) 2. 안 잃어버린 사람 중 예비용이 있는 사람의 리스트를 만들고 정렬했다 (reserve_man) 3. reserve_man에서 하나씩 꺼내서 번호보다 1 작거나 1 큰 수가 lost_man에 있다면 빌려주는 것.......

Naver Blog

모의고사 (Python) [프로그래머스 문제풀이]

Level 1. 모의고사 #완전탐색 문제 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 입출력 예시 방법 1. 최대 10000개의 문제가 출제될 수 있으므로 아예 세 사람의 답안지를 10000자리까지 만들어놨다 2. 각 사람의 점수를 score 리스트에 담으려고 한다 3. for문을 통해 answers의 답들을 하나씩 꺼내 답안지와 비교하고 답이면 score의 각 사람의 점수를 1 올린다 4. score에서 가장 큰 수 (x)를 찾고, x 점수를 가진 사람을.......

Naver Blog

14719_빗물 (Python) [백준 문제풀이]

14719_빗물 (Python) 알고리즘 분류 #구현 #시뮬레이션 문제 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다. 따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다. 출력 2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라. 빗물이 전혀 고이지 않을 경.......

Naver Blog

실패율 (Python) #KAKAO [프로그래머스 문제풀이] (수정예정)

Level 1. 실패율 #2019KAKAOBLINDRECRUITMENT 문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달.......

Naver Blog

폰켓몬 (Python) [프로그래머스 문제풀이]

Level 1.폰켓몬 #찾아라프로그래밍마에스터 문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습.......

Naver Blog

3진법 뒤집기 (Python) [프로그래머스 문제풀이]

Level 1. 3진법 뒤집기 (월간 코드 챌린지 시즌 1) 문제 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 입출력 예 설명 입출력 예 1) 답을 도출하는 과정은 다음과 같습니다. 따라서 7을 return 해야 합니다. 입출력 예 2) 답을 도출하는 과정은 다음과 같습니다. 따라서 229를 return 해야 합니다. 방법 3진법은 3으로 계속 나누면서 나오는 나머지를 마지막 것부터 나열하는 것이다 그렇기 때문에 가장 먼저 나눈 나머지가 맨 마지막에 오게 된다 그 점을 사용해 가.......

Naver Blog

2023_신기한 소수 (Python) [백준 문제풀이]

2023_신기한 소수 (Python) 알고리즘 분류 #수학 #정수론 #백트래킹 #소수판정 문제 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수이고, 7도 소수이다. 즉, 왼쪽부터 1자리, 2자리, 3자리, 4자리 수 모두 소수이다! 수빈이는 이런 숫자를 신기한 소수라고 이름 붙였다. 수빈이는 N자리의 숫자 중에서 어떤 수들이 신기한 소수인지 궁금해졌다. N이 주어졌을 때, 수빈이를 위해 N자리 신기한 소수를 모두 찾아보자. 입력 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 출력 N자리 수 중에서 신기한 소수.......

Naver Blog

백준 골드 달성 후기

레벨별로 풀기로 문제들을 쭉 풀었더니 실버 2까진 어떻게든 됐다 2주일정도 꾸준히 하니 처음부터 실버 1까지 갈 수 있었다 실버 1까지 꾸역꾸역 올라온 후엔 프로그래머스나 프로젝트 경험을 쌓기 위해 잠시 멈춰두고 하루에 한 두 문제만 풀면서 '잔디심기'를 했다 중간중간 골드 문제도 몇 문제 풀고 그러다보니 경험치를 꽤나 채웠고 간만에 생긴 여유 시간을 활용해 실버문제를 빠르게 여러 문제 풀어 실버를 탈출 했다 사실 골드라고 어렵고 실버라고 쉬운 문제는 아닌 것 같다 파이썬으로 풀어서 그런건지 생각보다 많이 쉽게 풀리는 골드 문제도 있었고 아직도 실패한 채로 남겨놓은 실버 문제가 너무 많다 자료구조에 대한 이.......

Naver Blog

로스카츠 + 쌀국수 세트 (PhoBo 홍대점) [홍대학식투어]

홍대학식투어 다른 학교의 학식이 부러웠던 적이 있다 다양한 메뉴. 싼 가격. 부러웠다 급식처럼 나오는 홍대의 4200원짜리 학식은 그것만의 매력이 있을 것이다 그러나 나는 학식을 대체할 식당들을 찾아 투어를 떠난다 홍대 근처의 식당 물가는 가성비를 찾기 쉽지 않았고 그마저도 코로나 시국을 거치며 사라져가고 있다 나는 홍대 가성비 식사 문화를 기록하고자 한다 돈까스 먹으러 가자 돈까스를 먹으러 가자는 말은 실패 할 수 없기에 과거엔 아이를 병원에 데려가는 주문으로 쓰곤 했다 대한민국 남성의 3대 소울푸드라고 한다면 국밥, 돈까스,제육이라 할 수 있는데, 그 중 오늘은 돈까스를 먹어볼까 한다 학식을 대체하기 위해 찾은만.......

Naver Blog

철판제육덮밥 (국시와가래떡) [홍대학식투어]

홍대학식투어 다른 학교의 학식이 부러웠던 적이 있다 다양한 메뉴. 싼 가격. 부러웠다 급식처럼 나오는 홍대의 4200원짜리 학식은 그것만의 매력이 있을 것이다 그러나 나는 학식을 대체할 식당들을 찾아 투어를 떠난다 홍대 근처의 식당 물가는 가성비를 찾기 쉽지 않았고 그마저도 코로나 시국을 거치며 사라져가고 있다 나는 홍대 가성비 식사 문화를 기록하고자 한다 남자는 무조건 '제육' 아니면 '돈까스' 학식을 자주 먹을 시절, 제육과 돈까스가 나오는 날은 무조건이었다 대한민국 남성의 3대 소울푸드 제육, 돈까스, 국밥 중에서 한 축을 자랑하는 제육, 오늘은 한 번 남자들이 빠질 수 밖에 없는 마성의 제육에 한.......

Naver Blog

약수의 개수와 덧셈 (Python) [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 #월간코드챌린지시즌3 문제 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000 입출력 예 입출력 예 설명 입출력 예 1) 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다. 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다. 입출력 예 2) 다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다. 따라서, 24 - 25 + 26 + 27 = 52를 return 해야 합니다. 약수의.......

Naver Blog

두 개 뽑아서 더하기 (Python) [프로그래머스 문제풀이]

Level 1. 두 개 뽑아서 더하기 (월간 코드 챌린지 시즌 1) 문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 입출력 예 설명 입출력 예 1) 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 = 1 + 4 = 2 + 3 입니다. 6 = 2 + 4 입니다. 7 = 3 + 4 입니다. 따라서 [2,3,4,5,6,7] 을 return 해야 합니다.......

Naver Blog

예산 (Python) [프로그래머스 문제풀이]

Level 1. 예산 (Summer / Winter Coding(~2018)) 문제 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물.......

Naver Blog

03_숫자 연산 / 자료형 [Python_코딩도장]

숫자 자료형(Type) - 정수 (int), 실수 (float), 복소수 (complex) int() 함수 괄호 안에 있는 숫자를 정...

Naver Blog

09_print 로 여러 값 출력하기 [Python_코딩도장]

print 함수로 여러 값 출력하기 print 함수 안에 ,(콤마)를 넣어 나누면 한번에 여러 값을 출력할 수 있다 ...

Naver Blog

14_문자열 만들기 [Python_코딩도장]

문자열 문자열을 가장 편하게 만드는 방법은 ' '(따옴표)로 묶는 것이다 (작은 따옴표, 큰 따옴...

Naver Blog

17_리스트를 튜플로, 튜플을 리스트로 (+ 문자열을 리스트, 튜플로) [Python_코딩도장]

리스트를 튜플로, 튜플을 리스트로 list(튜플), tuple(리스트) 튜플을 list()에 넣으면 리스트로, 리스트를...

Naver Blog

04_속성(Attributes)과 값(Value) [HTML]

속성(Attributes) 속성은 태그(요소)의 기능을 확장하기 위해 사용한다 열리는 태그 안에 속성 = &q...

Naver Blog

24_슬라이스로 리스트의 요소 할당, 삭제하기 [Python_코딩도장]

슬라이스로 리스트의 요소 할당하기 - 시퀀스객체[시작:끝] = 들어갈 시퀀스객체 기본적으론 위의 형...

Naver Blog

05_부모 요소(parent element) & 자식 요소(child element) [HTML]

부모 요소(parent element)와 자식 요소(child element) 부모 요소와 자식 요소는 상대적인 관계다 부모 요...

Naver Blog

06_빈 태그 (empty tag) [HTML]

빈 태그 (empty tag) 보통 태그를 사용할때에는 열리는 태그, 닫히는 태그 2개를 한 쌍으로 사용한다 <...

Naver Blog

25_딕셔너리 (dictionary) [Python_코딩도장]

딕셔너리 (dictionary) 리스트나 튜플은 인덱스를 사용해 일렬로 저장한다 각 요소별로 특징을 적어주고 싶...

Naver Blog

07_DOCTYPE(DTD),HTML 태그 [HTML]

DOCTYPE (Document Type Definition) HTML 버전에 따라 브라우저가 해석하는 방식이 다르게 ...

Naver Blog

08_head 태그에 들어가는 태그 (title, meta, link) [HTML]

title 태그 HTML 문서, 웹페이지의 제목이 들어간다 웹브라우저 창의 이름으로 노출된다 meta 태그 H...

Naver Blog

09_HTML 문서에서 CSS,JS 작성하기(style, script 태그) (+ JS 불러오기) [HTML]

CSS 작성하기 - style 태그 HTML로 만들어진 구조를 꾸며주는 CSS를 HTML 문서 내에서 작성...

Naver Blog

26_딕셔너리 키(key)로 접근해서 값 할당하기 (+키 개수 구하기) [Python_코딩도장]

딕셔너리의 키(key) 접근하여 값 확인, 값 할당하기 - 딕셔너리[key] 형식으로 접근한다 [ ](대괄호) 안에 ...

Naver Blog

10_body 태그에 들어가는 태그(div, img 태그) [HTML]

BODY 태그는 HTML 문서에서 주요 내용이 들어가는 몸통이다 div 태그 division, 분할을 뜻한다 문...

Naver Blog

11_웹 표준 검사 [HTML]

웹 표준 검사 W3C에서 표준 여부 판단을 할 수 있다 (아래 링크) http://validator.kldp.org/ (URL, ...

Naver Blog

27_if 조건문 (+ if 중첩문) [Python_코딩도장]

if 조건문 if문을 사용할 때 Python에서는 들여쓰기를 사용한다 기본적인 형태는 아래와 같다 조건식만 작...

Naver Blog

x만큼 간격이 있는 n개의 숫자 (Python) [프로그래머스 문제풀이]

Level 1. x만큼 간격이 있는 n개의 숫자 문제 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시...

Naver Blog

28_if else 조건문으로 분기하기 [Python_코딩도장]

if else 조건문 if 조건이 충족되지 않으면 else의 코드를 실행한다 만약 ~ 하면 A 하고, 아니면 B 한다 ...

Naver Blog

행렬의 덧셈 (Python) [프로그래머스 문제풀이]

Level 1. 행렬의 덧셈 문제 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서...

Naver Blog

핸드폰 번호 가리기 (Python) [프로그래머스 문제풀이]

Level 1. 핸드폰 번호 가리기 문제 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들...

Naver Blog

하샤드 수 (Python) [프로그래머스 문제풀이]

Level 1. 하샤드 수 문제 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예...

Naver Blog

평균 구하기 (Python) [프로그래머스 문제풀이]

Level 1. 평균 구하기 문제 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보...

Naver Blog

콜라츠 추측 (Python) [프로그래머스 문제풀이]

Level 1. 콜라츠 추측 문제 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 ...

Naver Blog

짝수와 홀수 (Python) #비트연산자 [프로그래머스 문제풀이]

Level 1. 짝수와 홀수 문제 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Od...

Naver Blog

제일 작은 수 제거하기 (Python) [프로그래머스 문제풀이]

Level 1. 제일 작은 수 제거하기 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴...

Naver Blog

30_for 반복문 [Python_코딩도장]

for 반복문 (range 사용) 위 양식으로 사용한다 0부터 range 안에 적힌 수까지 생성해 변수에 하나씩 꺼내 ...

Naver Blog

06_태그 선택자, 클래스 선택자 [CSS]

선택자는 HTML의 요소를 선택하는 사인(sign)이다 대표적으로는 태그 선택자, 클래스 선택자 2가지가 ...

Naver Blog

정수 제곱근 판별 (Python) [프로그래머스 문제풀이]

Level 1. 정수 제곱근 판별 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판...

Naver Blog

정수 내림차순으로 배치 (Python) [프로그래머스 문제풀이]

Level 1. 정수 내림차순으로 정리 문제 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿...

Naver Blog

자연수 뒤집어 배열로 만들기 (Python) [프로그래머스 문제풀이]

Level 1. 자연수 뒤집어 배열로 만들기 (연습문제) 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는...

Naver Blog

자릿수 더하기 (Python) [프로그래머스 문제풀이]

Level 1. 자릿수 더하기 (연습문제) 문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하...

Naver Blog

31_시퀀스 객체(list,tuple,string)와 for 반복문 [Python_코딩도장]

시퀀스 객체를 for 반복문으로 반복하기 리스트, 튜플, 문자열과 같은 시퀀스 객체에서 인덱스별로 하나하...

Naver Blog

07_요소의 크기를 정하는 속성 (width, height) [CSS]

width (가로 너비) 요소의 가로 너비, 단위는 픽셀(px)이다 div 선택자는 가로 너비를 100px로 하겠다면 아...

Naver Blog

08_요소의 글자의 크기를 정하는 속성 (font-size) [CSS]

font-size (글자 크기) 요소에 들어가는 글자 크기를 지정한다 크기는 px 단위를 사용한다 (예시) (CSS)...

1 2