728x90
반응형

코딩테스트 250

백준, BOJ, 2504번, 괄호의 값 C++ [CPP]

어렵지 않지만 생각을 잘해야 하는 문제 220227에 다시 풀어보니 생각이 안나는 어려운 문제.. 거의 일년만에 다시 푸네.. ㅋㅋㅋㅋㅋ 값이 확정되는 때가 언제더라 생각하고 있었다. www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 괄호가 나왔으니 스택에 쌓아가면서 할 것이란 것은 예상을 했다. 하지만 또 문제였던 것이 괄호를 닫을 때 이것이 멀리 있는 괄호가 닫히는 것인지 가까이 있는 괄호가 닫히는 것인지 구분을 하지 못한다는 큰 맹점이 생긴다. EX) ..

백준, BOJ 10799번, 쇠막대기 C++ [CPP]

2022.02.25 다시 풀어보았다. 21년 4월에 풀고 거의 1년만이다. 문제다. www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 물론 살펴보면서 규칙을 찾는 것은 많이 어렵지는 않았다. 스택에 쌓아가면서 생기는 쇠막대기의 개수를 테스트 케이스와 비교해보면서 규칙을 찾았다. 여기서 중요한 것은 스택만 이용하면 안된다. 스택만 이용하면 ()를 처리하는지 멀리떨어져있다가 삭제되어서 ()가 되어서 삭제되는지 알 수 없다. 때문에 나는 다른 방법을 이용했다. 문자열 자체를 ..

백준, BOJ 1021번 회전하는 큐 C++ [CPP]

물론 생각은 한 번에 났으나 구현이 20분은 걸렸다. www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 처음 문제보면서.. ?? 어떤 자료구조를 쓸까.. 만약 shift를 하면 앞 뒤 둘다에서 삭제 삽입이 일어나는구나. -> Deque를 쓰자. Double ended queue 왼쪽으로 미는 거랑 오른쪽으로 미는 거랑 구분을 해야겠다. **덱을 복사해서 쓰고 이동횟수가 적은 쪽을 다시 원본으로 복사해서 쓰자. -> 다른 방법이 바로 생각안나서 N도 적어서 ..

백준,BOJ 2493번, 탑 C++ [CPP]

22.03.01 다시 풀어봄 모든 문제를 기록하긴 좀 그렇고 내가 이해가 한 번에 안된 것들을 다시 이해시키고자 한다. www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제를 보자. 탑을 하나씩 세운다고 생각하자. 탑을 세울 때, 내 왼쪽에 수신할 탑이 없으면 0 수신할 탑이 있으면 해당 수신 탑의 index를 출력하면 되겠다. 5개의 탑 높이를 입력받는다. 6 9 5 7 4 순서대로 탑을 세우자. 위의 방법으로 해결하기 위해서는 왼쪽에 있는 탑들에 대한 ..

코딩테스트에 쓸 법한지식들 [ 파이썬, Python]

파이썬에서 맨날 틀리거나 약간씩 헷갈리는 것들은 다시 보자 iterable한 것들에는 리스트, 튜플, 문자열 등이 있음 filter(조건(메서드), iterable한 것들) return하는 것은 객체이며 객체를 리턴하기 때문에 lilst와 많이씀 조건에는 boolean을 return 하는 메서드가 온다. lambda가 많이 온다. -> 메서드를 간단히 구현하는 방법이기 때문 EX) lst = list(filter(lambda x: x%2 == 0, numbers) numbers에서 반복해서 뽑아내 lambda x에 할당시켜 x%2 == 0이 True인 것만 뽑아내서 list에 담겠다. lambda "매개변수" : 식1 if 조건식1 else 식2 if 조건식2 else 식3 메서드를 만드는 간단한 식이다..

전화번호 목록, Python3 [프로그래머스]

문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제 ph..

피보나치 수, Python3 [프로그래머스]

문제 설명 피보나치 수는 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은 1이상, 100000이하인 자연수입니다. 입출력 예 nreturn 3 2 5 5 입출력 예 설명 피보나치수는 0번째부터 0, 1, 1, 2, 3, 5..

H-index, Python3 [ 프로그래머스]

문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예 citationsretu..

문자열 압축, Python3 [프로그래머스]

문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 단위로 잘..

소수 찾기-lv2, Python3 [프로그래머스]

문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbersreturn "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11, 1..

728x90
반응형