240423-TIL

2024. 4. 23. 21:35내일배움캠프

4월 23일

 

오늘도 알고리즘 문제로 돌아왔다

 

햄버거 만들기

더보기

 

문제는 이렇다 처음에는 이해가 잘 안되서 빵야채고기빵만 리스트에 들어있으면 햄버거 만들수있는지 알고

 

그렇게 문제를 풀었는데 잘 보니 항상 빵 야채 고기 빵 순서대로 들어와야 햄버거를 만들수가 있다고 한다.

 

무능한 상수....

 

솔루션의 초기 상태이다 ingredient에 햄버거 재료가 순서대로 들어있다.

 

처음으로 해줄것은 바로 List를 하나 만들어주는 것이다. 배열은 배열안의 요소를 삭제하기 굉장히 번거롭기 때문에

 

문제를 풀기 쉽게 list로 ingreient에 있는 요소들을 담아줄생각이다.

 

짜란 두번째 할 일은 만들어둔 ingredList에 ingredient에 있는 요소를 하나씩 옮겨줄것인데 이번에는 그냥 반복문이 아니라 foreach를 사용할 생각이다.

 

배열을 순차적으로 돌며 해당순번의 요소를 item으로 가져올수가있다.

 

이런식으로 item을 List에 추가해준다 

 

그 다음 조건이 굉장히 중요한데

 

foreach문을 돌며 매 반복시마다 조건을 체크할것이다 List에 Count가 4이상이 되었을때

 

햄버거를 만들땐 적어도 빵이든 야채든 고기든 4개 이상의 재료가 필요하기 때문에 이렇게 조건을 만들어준다

 

 

위 조건문 안의 조건이다 list에 재료가 4개이상이 되었을때마다 검사를 해줄것이다. 4가지 조건을 모두 만족해야하기에 or이 아닌 and로 조건을 주었다 순서대로 1 = 빵 2 = 야채 3 = 고기 1 = 빵 순서대로 

 

foreach를 돌며 list에 재료가 하나씩 쌓여갈탠데 count의 -4 -3 -2 -1 순서로 재료를 비교하면 된다.

 

 

해당 조건을 만족한다면 햄버거를 만들수있다는 것이니깐 answer을 1 증가시켜주고

 

리스트 안의 해당 범위를 지워주도록하자 RemoveRange를 사용하면 해당 범위를 손쉽게 제거해줄수있다.

 

오늘 문제를 풀면서 RemoveRange라는걸 학습했다. 리스트에서 내가 지정한 범위의 요소를 제거해주는 기능인데

 

잘 기억해두었다가 필요한 상황이 오면 써먹도록 하자.

 

4월 23일 TIL은 여기서 마치도록 하겠다.

'내일배움캠프' 카테고리의 다른 글

240425-TIL  (0) 2024.04.25
240424-TIL  (0) 2024.04.24
240422-TIL  (0) 2024.04.22
240419-TIL  (0) 2024.04.19
240417-TIL  (0) 2024.04.17