본문 바로가기

PS27

Lv2_[다음 큰 숫자, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 2진수의 1의 개수가 동일한 큰 수를 찾아야 합니다. (※ 가독성을 위해 2진수 0b는 생략) 1의 수가 바뀌지 않고 다음 큰 숫자를 구하는 방법은 아래와 같다. 1(01) + 1(01) = 2(10) 1(01) 위치에 1(01)을 더하면 1의 숫자 개수도 같고 다음 큰 수의 만족을 하는 2(10)의 값을 구할 수 있습니다. ex) 9(1001)은 1번째 자리에서 일치 9(1001) + 1(01) = 10(1010) ex) (10010)은 2번째 자리에서 일.. 2023. 3. 30.
Lv2_[올바른 괄호, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 괄호방향에 따라 아래와 같의 정의해서 '(' = +1 ')' = -1 덧셋뺄셈으로 문제를 해결할 수 있다. 정의된 값을 가지고 두가지 조건을 만족한다면 알고리즘은 완성 조건1) 순차적으로 비교를 하는 중간에는 결과 값이 '0' 아니면 '항상 양수'가 되어야 함 -(음수)가 되면 즉시 false 조건2) 전부 비교한 후, 결과 값이 0이면 true 0이 아닌 모든 수는 false - 음수가 되는 경우는 ')'가 '('보다 먼저 들어온 경우 - 결과 값.. 2023. 3. 29.
Lv2_[가장 큰 정사각형 찾기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 정사각형을 찾기 위해 선택 index 기준으로 차근차근 알아보는 방법을 선택 주어진 2차원 벡터를 행렬형태로 배치하고 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] index기준(1인 경우)으로 '왼쪽 대각선 위', '왼쪽', '위쪽' 3부분을 비교함 비교 후 가장 값이 낮은 값과 현재 index 값을 더해줌 (위 결과 값은 정사각형이 만족되는 크기임) index가 x축(행), y축(열) 둘 중에 1개라도 0이 포함되는 .. 2023. 3. 27.
Lv1_[개인정보 수집 유효기간, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 1.날짜 비교 날짜의 단순 크기를 비교하는 간단한 방법은 년.월.일. 모두를 '일' 기준으로 풀어서 쓰는 것 1달을 28일로 기준이라면 (1월=28일), (1년=12월=12*28일=336)으로 풀어 쓸 수 있습니다. YYYY.MM.DD를 계산식으로 만들면 (YYYY*12*28) + ((MM-1)*28) + DD 이 됨 today 2022.05.19를 계산하면 (2022*12*28) + ((5-1)*28) + 19 = 679,523 나온 값으로 문제에.. 2023. 2. 8.
Lv1_[크기가 작은 부분문자열, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 문자열로 구성된 숫자를 비교를 하는 방법에는 문자열을 숫자로 변환해서 크기 비교 문자열끼리 크기 비교 1. 문자열을 숫자로 변환해서 크기 비교는 문자열을 숫자(정수)로 변환은 stoi, stol, stoll 으로 변환해주면된다. 여기서 주의해야 할 점은 문자열의 길이가 너무 길어서 sto~ 로 변환시에 자료형의 크기를 넘어가는 경우이다. ex) "interger MAX 2,147,483,647"이지만 string("11111111111") 이라면 s.. 2023. 2. 7.
Lv1_[3진법 뒤집기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 10진수를 3진수로 변경 진수 변환에서는 나눗셈과 나머지 연산을 활용해서 출력 출력된 정보는 vector에 저장 저장된 3진수를 앞뒤 반전 후에 10진법으로 변환해야하기 때문에 반복문을 맨뒤에부터 읽어서 3^n씩 곱해서 10진수로 변환 완료 1*(3^0) + 2*(3^1) + 0*(3^2) + 0*(3^3) = 1 + 6 + 0 + 0 = 7 HTML 삽입 미리보기할 수 없는 소스 ↓↓↓↓↓↓ 유익했다면 하트 뿅 ♥ ↓↓↓↓↓↓ 2023. 1. 16.
Lv1_[예산, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 문제와 풀이 과정을 보면 경우의 수를 구해야하는 것 같고 복잡해보일 수 있지만 잘 보면 간단히 풀리는 문제입니다. 예산을 가지고 최대 몇 개의 부서에게 지원해줄 수 있냐는 것인데 "금액을 적게 요청한 부서에게 순서대로 주었을 때 최대 몇개 부서가 받을 수 있는가?"를 체크하면 됩니다. 입력이 들어온 d를 오름차순 정렬해줌 순서대로 더하면서 총 합이 budget을 넘는지 체크 넘으면 종료 후 값 리턴 index[3]일 때 budget 크기를 넘기 때문.. 2023. 1. 15.
Lv1_[최소직사각형, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 모든 조건을 만족하기 위해서는 가로(w), 세로(h)의 크기가 가장 큰 것을 선택해야한다. 가로,세로 중에 길이가 긴부분을 가로로 짧은 부분을 세로로 설정한 후에 비교 (반대로해도 상관은 없음) 정렬이 완료가 되었으면 가로 중에 가장 큰 길이, 세로 중에 가장 큰 길이를 뽑으면 "최소직사각형"을 출력한 수 있습니다. 가로 큰 길이 : 80 세로 큰 길이 : 50 최소직사각형 = 80 x 50 = 4000 HTML 삽입 미리보기할 수 없는 소스 ↓↓↓.. 2023. 1. 14.
Lv1_[[1차] 비밀지도, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 두 가지의 풀이 방식을 설명 10진수를 2진수로 변경하면서 0을 공백(" "), 1을 벽("#")으로 변환 bitset, regex_replace를 이용한 방법 1의 알고리즘 두 장의 지도를 겹친다 → 동일 위치 숫자를 |(비트 OR 연산자)를 해준다. 반복문을 통해 10진수를 2진수로 변환(2진수로 전부 변환 되고 n번 모두 수행할 때까지) 0을 공백(" "_), 1을 벽("#")으로 변환 변환된 string을 앞으로 붙이면서 누적 (2진수 변환 .. 2023. 1. 13.
728x90
반응형