코딩테스트

[코드트리] 4월 5일 식목일을 맞아 나무랄 데 없는 코드트리!

봉두두 2022. 4. 5. 21:52
728x90

코드테스트 오픈채팅방에서 돌고 돌고 돌고~있는 "나무랄 데 없는 코드트리" 이벤트.

 

나무랄 데 없는 코드트리 식목일 이벤트

우리 같이, 나무 심어 볼래요?

www.codetree.ai

 

나도 한 그루의 나무를 심어보겠다. 도전!

총 7그루의 나무를 심을 수 있는데, 결과적으로 3그루밖에 심지 못했다.. 크흡

첫 시도에서 푼 문제 수 만큼의 나무를 테스트응시자의 이름으로 기증해준다고 하니

첫 시도에 최대한 많이 풀어보는게 좋겠다.

나는 남은 문제는 차근차근 한번 다시 풀어봐야겠다.

 

 

ps. C#은 지원하지 않아서 python으로 풀어야 했다. 오랜만에 python 공부하고 좋았다.

 


 

1번

단순 출력 문제. 나무 한 그루를 멋있게 출력하면 끝.

2번

n = input()
fi_input = input().split(' ')
fi = list()

for i in range(int(n)):
  fi.append(int(fi_input[i]))

fi_cp = fi.copy()

maxFi = max(fi)
minFi = min(fi_cp)

fi.pop(fi.index(maxFi))
fi_cp.pop(fi_cp.index(minFi))

nextMaxFi = max(fi)
nextMinFi = min(fi_cp)

maxMultiplyValue = maxFi * nextMaxFi;
minMultiplyValue = minFi * nextMinFi;

resMultiplyValue = maxMultiplyValue if maxMultiplyValue > minMultiplyValue else minMultiplyValue;

print(resMultiplyValue)

비옥 점수에 음수가 올 수 있음을 유의해서 풀어야 한다.

3번

n, m = map(int, input().split(' '))
arrField = [list() for i in range(n)]

# 여기에서 m만큼 잘라주지 않으면 테스트케이스에서 Runtime Error가 난다.
for i in range(n):
    thisLineInfo_str = input().split(' ')
    thisLinearray = list(thisLineInfo_str[i] for i in range(m))
    thisLineInfo = map(int, thisLinearray)
    arrField[i] = list(thisLineInfo)

firstL, firstR = map(int, input().split(' '))
secL, secR = map(int, input().split(' '))

for i in range(firstL-1, firstR, 1):
  try:
    indexOfCriminal = arrField[i].index(1)
    arrField[i][indexOfCriminal] = 0
  except:
    pass

numberOfRestCriminals = 0

for i in range(secL-1, secR, 1):
  try:
    indexOfCriminal = arrField[i].index(1)
    arrField[i][indexOfCriminal] = 0
  except:
    pass

for i in range(n):
  numberOfRestCriminals += arrField[i].count(1)

print(numberOfRestCriminals)

1이 위치한 최초 인덱스에 차례로 0으로 업데이트 해준 후 1의 개수를 구하면 되었던 문제.

 

 

나머지는 차근차근 또 풀어봐야지...

728x90
728x90