jo16
좌충우돌 기록기
jo16
전체 방문자
오늘
어제
  • 분류 전체보기 (30)
    • NLP (1)
    • 일반 (0)
    • 취업 (1)
    • 42seoul (1)
    • 운영체제 (1)
    • 컨퍼런스 (1)
    • 데이터베이스시스템 (5)
    • 알고리즘 (10)
    • 회고 (0)
    • Deep Learning Specializatio.. (9)
      • Neural Networks and Deep Le.. (4)
      • Improving Deep Neural Netwo.. (3)
      • Convolutional Neural Networ.. (0)
      • Sequence Models (0)
      • Structing Machine Learning .. (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Ai
  • 개발자컨퍼런스
  • mlx
  • 강의정리
  • 복습
  • 머신러닝
  • 삼성대학생인턴
  • 네이버 deview
  • raycasting
  • Computer Graphics
  • 삼성SW역량테스트
  • KEY
  • relational algebra
  • relational model
  • cs
  • NAVERDEVIEW2023
  • 딥러닝
  • 데이터베이스시스템
  • Cub3D
  • 42seoul
  • dbms
  • 첫 취준
  • 컴퓨터공학

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jo16

좌충우돌 기록기

프로그래머스 기능개발 (C++)
알고리즘

프로그래머스 기능개발 (C++)

2024. 7. 17. 10:09

1. 문제 설명

2. 문제 해결

배열의 길이가 길지 않은 걸 보니 따로 최적화를 할 필요는 없는 구현 문제라고 판단된다. 그냥 문제에서 하라는 대로 차근차근 하면 되어서 어려운 문제는 아니다. 나의 경우 v에 걸리는 시간을 넣어두고, map 자료구조를 사용해서 값을 갱신하는 형태로 코드를 작성하였다. 내 코드도 나쁘지 않다고 생각했는데, 다른 사람들의 풀이를 보니 훨씬 잘 최적화한 경우가 있었다. 

내가 놓친 부분은 다음과 같다. 

 

1. 작업일수를 구하기 위해 내부 반복문을 작성하지 않아도 된다. 99에서 현재 작업량을 빼고 속도로 나눠주면 된다. 

2. 이 문제에서는 v를 선언해서 계속해서 값을 저장해둘 필요는 없다. int 변수에 지금까지 중 최대 작업량만 넣어두면 된다.   

3. 꼭 map 자료구조를 사용할 필요는 없다. 왜냐하면 개수를 갱신한다고 하더라도 이전 값만 갱신하게 되기 때문이다. 

            ++answer.back();

 

3. 코드

#include <string>
#include <vector>
#include <map>
using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer;
    map <int, int> m;
    vector <int> v;
    
    for (int i = 0; i < progresses.size(); i++)
    {
        int num = 1;
        int tmp = progresses[i];
        while ((tmp += speeds[i]) < 100)
            num++;
        if ((i != 0) && (v[i - 1] > num))
            num = v[i - 1];
        m[num]++;
        v.push_back(num);
    }
    for (auto p:m)
        answer.push_back(p.second);
    return answer;
}

'알고리즘' 카테고리의 다른 글

프로그래머스 H-index (C++)  (0) 2024.07.17
프로그래머스 의상 (C++)  (0) 2024.07.16
프로그래머스 구명보트 (C++)  (0) 2024.07.16
프로그래머스 전화번호목록 (C++)  (0) 2024.07.15
프로그래머스 조이스틱 (C++)  (1) 2024.07.15
    '알고리즘' 카테고리의 다른 글
    • 프로그래머스 H-index (C++)
    • 프로그래머스 의상 (C++)
    • 프로그래머스 구명보트 (C++)
    • 프로그래머스 전화번호목록 (C++)
    jo16
    jo16
    공부한 것들을 기록합니다.

    티스토리툴바