Algorithm/배열

    [알고리즘] 리트코드 238. Product of Array Except Self c++ // 배열, 누적곱, rbegin, partial_sum

    [알고리즘] 리트코드 238. Product of Array Except Self c++ // 배열, 누적곱, rbegin, partial_sum

    https://leetcode.com/problems/product-of-array-except-self/description/* 풀이1(케이스 분류)경우의수를 나누고구현i) 0의갯수가 0개인경우ii) 0의갯수가 1개인경우iii) 0의갯수가 2개이상인경우class Solution {public: vector productExceptSelf(vector& nums) { vector ret; int zero_count=0; int total_product=1; for(auto num : nums){ if(num==0) zero_count++; else total_product*=num; } ..

    리트코드 자기를 제외한 배열의 곱 c++ // 누적곱 해결방법 : 누적곱 테이블을 정의하라

    리트코드 자기를 제외한 배열의 곱 c++ // 누적곱 해결방법 : 누적곱 테이블을 정의하라

    https://leetcode.com/problems/product-of-array-except-self/description/1. 기존코드0을 제외한 총 곱을 구하고0이 몇개인지에 따라서 분기함.. 너무 복잡함typedef long long ll;class Solution {public: vector productExceptSelf(vector& nums) { vector v,zero; int ret=1, iszero=0,isallzero=1; //0을제외한 총곱 , 0이있는지, 모두0인지 for(auto num:nums){ if(num==0) { iszero=1; zero.push_ba..

    백준 13458 시험감독 c++ // ret는 int범위를넘을수있다.

    https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 1. ret의 범위설정 시험장 1,000,000 * 학생수 1,000,000 > 21억 -> long long ret를 써야함 2. 전체코드 #include using namespace std; int n, a[1000000+4], b, c,tot; long long ret; int main() { cin.tie(0); cin >> n; f..

    프로그래머스 주차요금계산 c++ // 구현, db설정하라

    https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. DB설정 vector cars(9999+1); //car[0000] : 차번호0000의 시작시간,끝시간 cnt[10000] //차i가 주차한 총시간 stored[10000] //직전에 입차한 시간 //바킹독 2.시행착오 1. 한 자동차가 여러번 출차가능한경우를 빼먹었다. 3.전체코드 파싱결과 res : 05:34 / 5761 / IN times : 05 / 34 가 저장된다. #include..

    백준 1919 cpp // 문자열 차이검사는 +1, -1로 비교하라

    https://www.acmicpc.net/problem/1919 1919번: 애너그램 만들기 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs www.acmicpc.net *의사코드 1. s1 문자는 +1 // v[a]++ 2. s2 문자는 -1 // v[a]--; 3. 0이 아닌 v에 대해 == 서로다른 문자에 대해 : ret+= abs(v[a]) // s2는 음수이므로 절대값으로 해결 #include using namespace std; int ret,a[26]; string s1, s2; int main() { ios_base::syn..

    백준 11328 cpp // tc문제는 visit을 초기화하라 , 카운팅 배열 동등비교시 +1 -1하고 값이 0이면 같은배열

    https://www.acmicpc.net/problem/11328 11328번: Strfry C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래 www.acmicpc.net *의사코드 1. v1, v2에 알파벳 등장횟수저장 // v[a] == a 등장횟수 2. 모든값이 같으면 같은배열임 -> 순서바꿔서 같은 문자열로 만들수있음 -> Possible 3. else -> 불가능 * tc문제는 visit을 초기화하라 for (int i = 0; i < tc; ++i){ fill(v1,v1+26,0); fill(v2, v2 + 26, 0); * 카운팅 배..

    백준 13300 방배정 cpp // visited배열활용 , 몇 묶음인지 구현하는법

    https://www.acmicpc.net/problem/13300 13300번: 방 배정 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어 www.acmicpc.net *의사코드 1. visiited에 [학년][성별]이 몇명인지 기록. for visitied : 학년별 성별인 사람숫자에서 각각 몇묶음인지 카운팅하면된다. ex) 6학년 남학생 : 7명 / k=3 3묶음(3+3+1) == 필요한 방의 갯수 * 몇 묶음인지 구현하는법 (뺄셈을 이용하면 된다.) int people = visited[i][j]; while (people / k..

    백준 10807 개수 세기 // visited 배열이용한 풀이방법

    https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net *의사코드 입력받을때 visited[숫자] 를 카운팅한다. * 문제 : 입력 최악이 -100 => visited[-100] ?? 해결 : idx에 +100 && 출력할때도 idx+100으로 조회,출력 #include using namespace std; int n,v,visited[204]; vector vec; int main() { cin >> n; for (int i = 0; i..