Python으로 푸는 SW Expert Academy 1244. 최대 상금 SW Expert 아카데미 1244. 최대 상금문제에서는 숫자판을 주어진 횟수만큼 교환하여 최대 숫자를 만들도록 코드를 짜야한다.미리 말해두지만 여기에 올린 코드는 남이 이해하기에 좋은 코드가 아니다. (효율도 그닥 안좋은 것 같고..)그럼에도 이 포스팅을 하는 이유는 문제가 계속 fail이 뜨는데 그 이유를 모르는 사람이 있다면 풀이 방법을 참고하면 해결할 수 있기 때문이다.앞서 말하지만, 주어진 케이스가 잘못된게 아니고 그냥 코드를 잘못 짠거다.나중에 알고리즘을 다시 정리해서 좀더 깔끔한 코드로 포스팅을 수정했으면 좋겠다.github에서 코드 보기삼성 SW Expert Academy에서 푼 문제 리스트 보기문제에서 제시한 조건- 주어진 횟수만큼 반드시 모두 교환이 일어나야 한다. - 동일한 위치의 교.. 온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 6년 전
Python으로 푸는 SW Expert Academy 4012. 요리사 SW Expert 아카데미 4012. 요리사 문제는 입력 받는 방법의 차이는 있으나,백준의 스타트와 링크 문제와 같은 문제이다.두 명의 손님에게 두 개의 요리를 만들어 제공하려고 한다.두 명의 손님은 식성이 비슷하기 때문에, 최대한 비슷한 맛의 음식을 만들어 내야 한다.식재료의 종류를 둘로 나누지만, 비슷한 맛의 음식을 두 가지 만들어 제공하기로 했을 때각각 음식에 사용할 식재료들의 궁합에 따라 시너지의 합을 구하고그 시너지의 합의 차가 최소가 되는 경우를 찾아그 최솟값을 정답으로 출력하도록 코드를 짜도록 하자.문제 보러 가기백준 스타트와 링크 풀이 보기github에서 코드 보기 문제에서 제시한 조건- 두 명의 손님은 식성이 비슷하여 최대한 비슷한 맛의 음식을 만들어 내야 한다.- N 개의 식재료가 있고.. 온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 6년 전
Python으로 푸는 SW Expert Academy 5202. 화물 도크 SW Expert 아카데미 5202. 화물도크 문제에서는 일정 시간동안 최대한 많은 화물차가 화물을 싣고 내릴 수 있도록 하면,최대 몇대의 화물차가 이용할 수 있는지 알아내야 한다.문제 보러 가기github에서 코드 보기문제에서 제시한 조건 1. 작업은 24시간 진행된다.2. 작업 시작 시간은 매시 정각을 기준으로 하며, 앞 작업의 종료와 동시에 다음 작업을 시작할 수 있다.문제 풀기 전 결정 사항- 최대한 많은 화물차가 싣고 내릴 수 있도록 하려면 최단 시간에 업무를 종료하는 화물차를 우선으로 내보내야 한다. - 모든 테스트 케이스를 입력받아 처리하지 않고 yield 키워드로 generator를 사용하여 각각의 케이스별로 input 데이터를 처리하여 결과 값을 출력한다. 문제 풀이 방법이 문제는 그리디.. 온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 6년 전
Python으로 푸는 백준 1931. 회의실배정 백준 1931. 회의실배정 문제는 삼성 SW Expert에 5202. 화물 도크 문제와 유사하지만좀더 까다로운 문제라고 할 수 있다.시작하자마자 종료되는 회의가 존재하기 때문이다.회의실 사용표를 보고 최대 사용할 수 있는 회의수를 출력해야 한다.이 문제를 해결하려면 어떻게 해야 할까.문제 보러 가기github에서 코드 보기 문제에서 제시한 조건- 회의는 한번 시작하면 종료할 수 없다.- 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다.- 회의의 시작 시간과 끝나는 시간이 같을 수도 있다. (시작하자 마자 끝나는 회의로 보면 된다.)문제 풀기 전 결정 사항- 내부적으로 파이썬에 내장되어 있는 sort 함수의 시간 복잡도는 평균적으로 nLogn이므로 별도의 정렬 메소드를 다시 짤 필요는 없다.(보.. 온라인 코딩 테스트 문제 풀이/백준 문제 풀이 6년 전
Python으로 푸는 SW Expert Academy 1208. Flatten SW Expert 아카데미 1208. Flatten 문제에서는 높은 곳의 상자를 낮은 곳에 옮기는 방식으로 최고점과 최저점의 간격을 줄이는 작업을 Python으로 구현해내려고 한다.평탄화 작업을 위해서 상자를 옮기는 작업 횟수에 제한이 걸려 있다.제한된 횟수만큼 옮기는 작업을 했을 때, 최고점과 최저점의 차이를 어떻게 구해낼 수 있을까.문제 보러 가기github에서 코드 보기 문제에서 제시한 조건1. 한 번에 한 개의 상자만 옮길 수 있다. 이 작업을 덤프라고 한다.2. 덤프 횟수는 제한이 있다.3. 가로 길이는 항상 100이며 모든 위치에서 상자의 높이는 1이상 100이하로 주어진다.4. 주어진 덤프 횟수 이내에 평탄화가 완료되면 더 이상 덤프를 수행할 수 없으므로 그 때의 최고점과 최저점의 높이 차를.. 온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 6년 전
Python으로 푸는 SW Expert Academy 1859. 백만 장자 프로젝트 SW Expert 아카데미 1859. 백만 장자 프로젝트 문제에서 원재는 미래에 물건의 매매가를 미리 보는 능력을 사용하여 물건을 미리 사재기를 하여 최대 수익을 얻으려고 한다. 원재가 사재기를 통해 최대 이익을 얻을 수 있도록 구입과 판매를 하는 코드를 짜려면 어떻게 해야 할까.SW Expert Academy에서 푼 문제 리스트 보기github에서 코드 보기문제에서 제시한 조건1. N일 동안의 물건의 매매가를 예측하여 알고 있다.2. 과도한 사재기 방지를 위해 하루에 최대 1만큼 구입할 수 있다.3. 판매는 언제든지 할 수 있다. 문제 풀기 전 결정 사항- 원재가 각각의 테스트 케이스마다 예측가능한 N일은 최대 1,000,000이며 최대 N 길이의 리스트를 생성하여 최대 매매가의 index를 찾아 그 .. 온라인 코딩 테스트 문제 풀이/삼성 SW Expert 문제 풀이 6년 전