코테 준비-문제풀기 37

프로그래머스 - 해시/ 전화번호 목록 JAVA

programmers.co.kr/learn/courses/30/lessons/42577?language=java 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조�� programmers.co.kr LG 코테가 c++이 안돼서..급하게 java로 준비중이다.. 이번 문제 역시 문제를 잘 생각해야한다. 처음에 생각없이 contains를 사용해서 풀었다가 테스트케이스 1,5를 통과하지 못했는데 그 이유는 접두어를 생각하지 않고 포함하는 것만 생각했기 때문이다. 12345 와 34가 있을때 이는 접두어가 아니므로 true를 리턴해야한다. 그래서..

프로그래머스 - 프린터 c++

https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 문제가 누가봐도 큐를 사용해서 풀어야하는 문제였다. - vector의 max_element를 잘 사용하면 빠르게 풀리는 문제였다. -*max_element를 사용하면 max값을, max_element를 이용하면 max의 index를 얻어올 수 있다. max를 찾을때마다 그 index에 대한 값을 -1로 바꿔주면서 남은 것들의 max값을 찾아갔다. -que는 lo..

계단 오르기 문제 - 재귀함수 사용

문제는 이런거였고, 재귀함수를 사용해 풀었다. - 처음에 1로 시작했을때 -처음에 2로 시작했을때를 나눠서 방법을 다르게 하였고, left를 통해 남은 계단의 수를 체크해주었다. 남은 계단의 수가 0일때 방법의 수(count)를 1씩 증가시켜 마지막에 count를 출력해주었다. #include #include #include #include using namespace std; int count=0; int calculate(int num, int left){ if(num==1){ left-=1; } else if(num==2){ left-=2; } if(left==0){ count++; return 0; } else{ if(left>=1) calculate(1,left); if(left>=2) calc..

백준 2493 탑 c++

https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 �� www.acmicpc.net 이 문제는 프로그래머스 탑문제랑 같은 문제인것 같다 프로그래머스처럼 똑같이 이중 for문으로 풀었으나 시간초과로 실패했다.. 컴파일 에러는 c++14로 해야하는데 c++로 선택해서 컴파일 에러가 난 것같다... 무튼 이문제는 그냥 다 stack으로 푸는 문제였다. 역시 프로그래머스 풀듯이 풀면 안되는거였는데.. 무튼 !! 아이디어를 생각하는게 조금 어려웠다 idea 1. 처음 들어오는 애는..

교내 코딩테스트 강의 1주차

https://www.onlinegdb.com/ GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++ Online GDB is online compiler and debugger for C/C++. You can compile, run and debug code with gdb online. Using gcc/g++ as compiler and gdb as debugger. Currently C and C++ languages are supported. www.onlinegdb.com 이 사이트를 이용해 컴파일을 한다. 되게 간단한것들을 해보고있다..간단한 c++ 문법 argc 는 argument의 수를 의미 합니다. argv ..

프로그래머스 - 힙/ 더 맵게 문제 c++

처음에는 vector를 그냥 sort사용해서 정렬한다음 첫번째 원소를 erase해주고 두번째 원소를 erase해준 다음, 새로운 new_sco를 계산해서 insert로 넣어줬다.( iterator를 사용하여 넣어줬다) 그랬더니 효율성 체크에서 실패가 떠서 코드를 아예 다른 방식으로 접근해야했다.. 누가봐도 큐스러운 문제가 있을때는 그냥 큐를 사용하자...! 괜히 벡터로 sort하고 뭐해도 실행시간 때문에 실패하는 경우가 많다... 사실 큐는 알고있었는데 기말고사로 코테를 잠시 손을 놔서 그런지 pritority_queue가 생각나지 않았다.. 원래부터 모르고있던건지 까먹은건지 모르겠지만 무튼! priority_queue를 사용해서 풀면된다 priority_queue를 greater를 사용하여 오름차순으로..

프로그래머스 카카오 다트게임 c++

https://programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 이 문제는 '10'을 잘 고려해야한다. 처음에 10을 고려안하고 0부터 9까지 생각했다가 다 꼬여버렸다. 물론 이후에 10도 계산할 수 있도록 바꾸면 되지만 처음부터 잘 생각하고 짜면 좋으니까.. 10처럼 두자리를 계산하기 위해 flag를 사용했다. 숫자가 들어갈때마다 num_count를 1씩 증가시켜 인덱스를 함수에 전달해주었고, 0부터 시작해야하므로 num_count는 -1로 초기화 ㄱ -char to..

프로그래머스-모의고사 c++ 완전탐색

**answer와 answers를 헷갈리지 마시오...이것때문에 10분이면 풀 문제를 30분 넘게 풀었다.. 함수 이름도 꼼꼼하게 확인해야겠다 #include #include using namespace std; vector solution(vector answers) { vector answer; vector person1{1,2,3,4,5}; vector person2{2,1,2,3,2,4,2,5}; vector person3{3,3,1,1,2,2,4,4,5,5}; int count1=0; int count2=0; int count3=0; //size for(int i=0;i> size; int *arr = new int[size]; for(int i=0; i> arr[i]; } cout

프로그래머스 - 정렬 H-index 문제

https://programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr count_if를 사용하면 벡터안에 함수를 만들어 해당 함수에 들어맞는 요소의 개수를 셀 수 있다. 함수는 bool로 만들고, ex) 20이상의 수가 몇개인지 세고 싶다 하면 if(i>=20) return true; 이런식으로 하면된다. 무슨 소리인지 모르겠으면 코드로 ㄱㄱ #include #include #include using namespace std; int element; bool count_h(in..

프로그래머스-스택 '탑'문제

https://programmers.co.kr/learn/courses/30/parts/12081 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -스택문제라고 안적혀있었으면 스택으로 안하고 계산을해서 적었겠지.. 사실 처음에는 스택이 어디 필요한가 했는데 출력형식때문에 스택이 필요했다. 나는 그랬다.. 1. flag사용 flag를 사용한 이유는 j==-1일때를 구분하기 위한것인데 먼저 j=-1이 될때는 2가지 경우가 있다. 배열을 다 돌았는데 i 보다 큰 탑이 없을때 마지막을 돌았을때 그 마지막 i가 자신보다 높은 탑이었을 경우 이럴 경우 둘다 j=-1이..