다섯번째, 여섯번째 프로젝트 관련 내용을 읽어보다가
첫번째 프로젝트에서 에러가 확인되어서 수정에 들어갔다.
원인을 파악해보니 이전에 추가된 취소상태의 경우
헤더가 삭제될 때 하단의 품목들의 수량 삭제처리를 보낼 때
해당 List에 담긴 Item들의 필드에 취소됨 필드가 포함되어 있지 않았기 때문에
취소됨 여부 체크를 통해 처리하는 것에 문제가 발생한 것으로
쿼리 내부의 요청 필드에 취소됨 필드만 추가하니 정상적으로 동작했다.
관련 사항을 보던 중 인터페이스를 발송할 때도 취소된 것을 보내지 않는 것이 좋다고 하셔서
Where에 조건으로 추가해서 간단하게 수정했고
이번에 취소됨을 처리하면서 이전에 헤더의 거절 상태의 처리의 부족한 부분이 보여서
삭제 및 복구를 잠금 처리했던 것에 더해서
관리자가 삭제 또는 복구를 할 수 있기 때문에 거절 상태 비교를 추가했다.
추가적으로 인터페이스의 작동 방식 변경을 요청해서
검색하는 인터페이스의 키를 변경했는데
UTC 기준이라 시간이 뭔가 이상해서 수정이 좀 필요할 것 같기도 하다가
어차피 배송이면 도착시간만 알면 되고
앞 뒤 간격만 자르면 되는데 날짜 기준일 필요가 있나 싶기도 해서
수정되고 안내된 상태에서 추가 문의가 안와서 이런저런 시도를 해보다 다른 문의를 먼저 처리했다.
인터페이스 관련 업무가 마구 생성되고 있고
충격적이게도 생성 예정에 대해서도 문의가 들어오고 있는데
첫번째 프로젝트 최종 마무리 매뉴얼을 작성하려고 기능을 정리하다가
3시부터 진행되는 다섯번쨰 프로젝트 인터페이스 미팅에 들어갔다.
회의가 끝나고 내용 정리를 한 다음
첫번째 프로젝트에서 다시 온 요청사항을 처리했고
해당 내용들이 이제 프로젝트 마감으로 선언되었기 때문에
유지보수였다는 놀라운 사실을 알게 되어 유지보수로 등록된 사례를 수정하다 퇴근했다.
(1).백준 22093번 Соцопрос는 문제의 난이도를 묻는 문제로
n개의 문제가 주어질 때 문제의 답을 아는 사람과
문제를 풀기 싫어하는 사람의 숫자가 주어질 때
최소, 최대 몇명이 맞출 수 있는지를 묻는 문제였다.
최소값은 당연히 문제를 아는 사람들이 모두 불참해야 하기 때문에
정답을 아는 사람에서 싫어하는 사람만큼을 뺀 다음 0보다 작을 수 없기 때문에 Math.max에 0을 추가해줬다.
최대값은 문제를 아는 사람이 다 맞춘다고 가정해야 했지만
문제를 풀기 싫어하는 사람도 존재하기 때문에
총 인원에서 문제를 풀기 싫어하는 사람과 문제의 답을 아는 사람 중 작은 숫자로 선택해 문제를 해결했다.
// const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n')
const input = `3
3 2 1
5 5 0
4 3 3
100 1 1`.split('\n')
const result = []
for(let i = 1 ; i < input.length ; i++){
const [x, a, b] = input[i].split(' ').map(Number)
result.push(`${Math.max(0, a-b)} ${Math.min(x - b, a)}`)
}
console.log(result.join('\n'))
'회고' 카테고리의 다른 글
[개발일지] - 167 (0) | 2023.12.14 |
---|---|
[개발일지] - 166 (0) | 2023.12.13 |
[개발일지] - 164 (0) | 2023.12.11 |
[개발일지] - 163(주말) (0) | 2023.12.10 |
[개발일지] - 162(주말) (0) | 2023.12.09 |