[Programmers - lv02] 쇠막대기 (cpp / python)
·
Algorithm/Programmers
쇠막대기 코딩테스트 연습 - 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레� programmers.co.kr 문제 설명 (는 스택에 쌓아주고 )일때마다 top에 있는 (를 pop하고 스택의 사이즈를 answer에 더해준다. 문제 풀이 소스코드 : C++ #include #include using namespace std; int solution(string arrangement) { int answer = 0; vector v; // stack for(int i=0; i
[Summer/Winter coding 2019] 멀쩡한 사각형 (cpp / python)
·
Algorithm/Programmers
멀쩡한 사각형 문제 설명 처음에 문제를 접했을 때, 아무리 생각해도 로직이 떠오르지 않았다. 그래서 조금 수학적으로 생각을 바꿔보았다. 대각선을 그릴 때에도 가로의 길이와 세로의 길이와 관련이 있다. 중복되는지점이 4개라는 것을 알 수 있다. 결국 이 대각선을 지나는 사각형의 개수를 구하기 위해서는 중복되는 지점의 개수를 찾아 빼주면된다. 이 경우에 중복되는 지점은 1개이다. 빨간 부분에서 중복되는 점이 발생한다. 결국 이 중복되는 점은 두 수(2,3)의 최대공약수이며 위 모양의 반복되므로 그 개수 *4를 해주면 중복되는 지점의 개수를 구할 수 있다. 결국에는 8과 12의 최대공약수가된다. 따라서 이 문제를 식으로 해결하면 answer = w*h(전체 사각형의 개수) - (w + h - gcd(w,h)가..
[파이썬으로 웹 스크래퍼 만들기] 5. 중간점검 및 복습
·
Side Project
이제 긁어오는 방법을 알았으니 이것을 토대로 복습을 해볼것이다. 프로그래머스 코딩테스트 문제 중 내가 푼문제와 안 푼 문제를 보고싶을때가 있는데 프로그래머스는 확인할 수 가 없다. 그래서 내가 직접 긁어와서 필터링을 해보겠다. Beautiful Soup 4 vscode에 설치하기 sudo apt-get update # 사용가능한 패키지들과 그 버전들의 리스트를 업데이트 하는 명령 sudo apt-get install python3-pip # python라이브러리 패키지 관리 시스템 pip3 install beautifulsoup4 # beautifulsoup4 설치 페이지 넘버를 우클릭하여 검사를 눌러보면 위와같이 pagination을 가진 태그를 찾을 수 있다. 그런데 문제가 생겼다. 분명 pagina..
[2018 kakao blind recruitment] 1차 뉴스 클러스터링
·
Algorithm/Programmers
뉴스 클러스터링 문제 설명 주어지는 문자열을 2글자씩 잘라 다중 집합을 만들고 두 문자열의 다중집합의 합집합의 개수와 교집합의 개수를 구하는 문제다. 문제 풀이 소스코드 : C++ 문자열을 2글자씩 잘라주는 함수 makeArr 두 글자 중 하나라도 알파벳이 아니면 continue 두 글자 모두 소문자로 변환하고 sv에 담는다. 위 과정 반복 후 반환 변환한 두 벡터 모두 비어있다면 65536을 반환하고 종료 sv에 sv2를 복제한다. 만약 sv에 sv1 값을 찾을 수 있다면 -> 교집합, answer++ answer는 교집합의 개수이고 sv1 + sv2 - answer는 합집합의 개수이다. 교집합 / 합집합 * 65536을 반환한다. #include #include #include #include #in..
[Programmers - 2017 팁스타운] 예상 대진표 (cpp / python)
·
Algorithm/Programmers
예상 대진표 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 은 2의 지수승으로 주어지기 때문에 2진수와 관련이 있지 않을까 생각했다. 8팀이 주어졌을때 2번과 7번이 만나기 위해서는 총 3번의 경기를 진행해야한다. 1 2 3 4 5 6 7 8 (8팀) 2 x y 7 (4팀) 2 7 (2팀) 문제 풀이 소스코드 : C++ 2로 나눌때마다 answer++을 해주고, ( 로직을 2진수로 접근해서 시프트 연산자를 썼다.), a와 b가 같아질 때까지 반복한다. 1 2 3 4 5 6 7 8 (8팀) - 2로 나누고 answer +1 1 x y 4 (4..
[Programmers - S/W coding 2018] 영어 끝말잇기 (cpp / python)
·
Algorithm/Programmers
영어 끝말잇기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 명의 사람이 주어진 단어들을 하나씩 말하면서 끝말잇기가 맞는지, 같은 단어를 사용했는지 확인하는 문제다. 문제 풀이 소스코드 : C++ 중복되는 단어가 불러졌는지 확인하기 위한 unordered_set 선언 영어 단어를 몇 개를 말했는지 세는 cnt 선언 words.size() 를 N개씩 잘라가며 idx를 갱신해주기위한 idx = i%n 이전 단어의 끝부분과 현재 단어의 앞부분을 비교해서 다르다면 종료 시점의 사람 idx와 말한 갯수를 answer에 푸시하고 반환 set안에 존재하..
[Programmers - S/W coding 2018] 점프와 순간이동 (cpp / python)
·
Algorithm/Programmers
점프와 순간이동 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 점프 : 1칸 이동 -> 1번당 베터리 1 소모 순간이동 : 현재까지 온 거리 $\times$ 2 위치로 이동 -> 1번당 베터리 소모 X 즉, 순간이동을 최대한 많이 해서 도착지점까지 도달하는 방법을 구하는 문제 Key Point 는 순간이동은 현재위치 $\times$ 2 까지 움직일 수 있다는 것이다. $$ \require{enclose} \begin{array}{r} 0\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(J)\\ 1 \,\,\dots \..
[Programmers - S/W coding 2018] 소수 만들기 (cpp / python)
·
Algorithm/Programmers
소수 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 숫자들 중 3개를 골라 더하여 소수인지 판별하는 문제 에라토스테네스의 체를 이용하여 문제를 해결한다. 문제 풀이 소스코드 : C++ 숫자의 범위의 최대는 1000이므로 나올 수 있는 가장 큰 값은 1000 + 999 + 998 이다. 따라서 대략 3000개의 숫자에 대해서 모든 소수를 찾는다. 에라토스테네스의 체를 이용하여 2~ 3000까지의 소수를 판별한다. 조합을 구현하여 N개 중 3개를 선택한다. 모두 더하여 소수인지 판별한다. #include #include #includ..
WONILLISM
'프로그래머스' 태그의 글 목록 (5 Page)