Junior-Developer
Home
  • Category (316)
    • 문제풀이 (270)
      • 백준oj (201)
      • 프로그래머스 (53)
      • 명품 자바 프로그래밍(개정4판) (11)
      • 구름 (5)
    • 알고리즘 (6)
    • Node.js (2)
    • 체크리스트 (37)
블로그 내 검색
Home

Junior-Developer

1일 1커밋! 1일 1 백준!

  • 문제풀이/백준oj

    [백준OJ] 16162번 가희와 3단 고음

    2021. 6. 12.

    by. Hyeon-Uk

    반응형

    https://www.acmicpc.net/problem/16162

     

    16162번: 가희와 3단 고음

    첫째 줄에 참가자들의 음의 개수를 나타내는 정수 N(1 ≤ N ≤ 2 x 104), 고음의 첫 항과 공차를 의미하는 정수 A, D(1 ≤ A, D ≤ 107)가 공백으로 구분되어 주어진다. 둘째 줄에 참가자들의 음을

    www.acmicpc.net


     

    -풀이-

    처음엔 문제가 이해되지않아서 곰곰히 문제를 다시보니, 등차수열의 최대 개수를 찾아야되는 문제이다.

    등차수열이란 An=A0+d(n-1) 을 만족하는 식이된다.

     

    이문제를 풀기위해 나는 stack자료형을 사용하여 배열을 한번 쭉 탐색했다. 탐색하면서.

    1) 먼저 스택이 비어있을땐, 처음항인 a가 들어와야 한다.

    2) 스택이 비어있지 않을때는, 스택의 top부분이 연속되는 등차수열의 마지막항이 되므로, 스택의 TOP에있는 원소+d가 있다면, push를 한다.

     

    이렇게 등차수열의 최대 개수(스택의 사이즈) 를 출력하면된다.

     

    -시간복잡도-

    배열을 한번 탐색하면 되므로 O(N)이 걸린다.

     

    -코드-

     

    #include<iostream>
    #include<algorithm>
    #include<stack>
    
    using namespace std;
    
    int arr[20001];
    
    int main() {
    	ios_base::sync_with_stdio(false);
    	cin.tie(NULL);
    	cout.tie(NULL);
    	int n, a, d;
    	int answer = 0;
    	stack<int> st;
    	cin >> n >> a >> d;
    
    	for (int i = 0; i < n; i++) {
    		cin >> arr[i];
    	}
    
    	for (int i = 0; i < n; i++) {
    		int now = arr[i];
    		if (now==a&&st.empty()) {
    			st.push(now);
    		}
    		else {
    			if (!st.empty()&&st.top() + d == now) {
    				st.push(now);
    			}
    		}
    	}
    	cout << st.size() << "\n";
    
    	return 0;
    }
    

     

    반응형
    저작자표시 (새창열림)

    '문제풀이 > 백준oj' 카테고리의 다른 글

    [백준OJ] 11034번 캥거루 세마리2  (0) 2021.06.20
    [백준OJ] 12851번 숨바꼭질 2  (0) 2021.06.12
    [백준OJ] 17070번 파이프 옮기기  (0) 2021.06.10
    [백준OJ] 9465번 스티커  (0) 2021.06.09
    [백준OJ] 21758번 꿀 따기  (0) 2021.06.08

    댓글

    관련글

    • [백준OJ] 11034번 캥거루 세마리2 2021.06.20
    • [백준OJ] 12851번 숨바꼭질 2 2021.06.12
    • [백준OJ] 17070번 파이프 옮기기 2021.06.10
    • [백준OJ] 9465번 스티커 2021.06.09
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
Hyeon-Uk

티스토리툴바