1. 오늘의 코드카타 - 과일 장수
답안 :
using System;
using System.Linq;
public class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
int index = m - 1;
Array.Sort(score);
Array.Reverse(score);
for(int i = 0; i < score.Length / m; i++)
{
answer += score[index] * m;
index += m;
}
return answer;
}
}
Score를 Array.Sort와 Reverse를 통해 내림차순으로 바꿔주고
for문을 Score 의 길이를 m으로 나눈 만큼 돌리고, score[index]에 m을 곱한 값을 더해주고 index를 m만큼 증가
이제부터는 어렵다고 느껴져서 인터넷에 검색을 해야했다. 코드 자체는 특별히 복잡해지지 않은 만큼 문제에서 요구하는 알고리즘 자체를 파악하는 것이 조금 더 어려워진 탓으로 보인다.
2. 오늘의 작업
제출 날이라 엄청나게 분주했다. 발표자인 만큼 발표자료를 준비하느라 곱으로 힘들었던 것 같다.
===최종 구현 모습===
===시연 영상===
===트러블 슈팅===
오늘은 자잘한 작업들을 제외하면 사운드 매니저, 오디오 믹서와 볼륨 컨트롤러를 마지막으로 작업했다.
사운드 매니저는 옛날 강의에서 사용한 내용을 우리 프로젝트에 풀 매니저와 리소스 매니저를 통해 사운드 소스를 오브젝트 풀링하여 생성하는 메소드만 추가했다.
또한 총소리는 많이 날 것으로 판단되어 다른 전용 사운드 소스를 통해 구분되도록 분리해 놓았다.
오디오 믹서와 볼륨 컨트롤러를 통해 사운드 조절이 가능해 졌는데 볼륨 컨트롤러의 코드는 다음과 같다.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
public class VolumeController : MonoBehaviour
{
[SerializeField] private AudioMixer _audioMixer;
[SerializeField] private Slider Master_Slider;
[SerializeField] private Slider Bgm_Slider;
[SerializeField] private Slider Fx_Slider;
[SerializeField] private Slider Gun_Slider;
private void Start()
{
Init();
Managers.UI_Manager.HideUI<UI_OptionMain>();
}
public void Init()
{
if (PlayerPrefs.HasKey("MasterVolume"))
{
Debug.Log("LoadVolume");
LoadVolume();
}
else
{
SetMasterVolume();
SetBGMVolume();
SetFXVolume();
SetGunVolume();
}
}
public void SetMasterVolume()
{
float mastervolume = Master_Slider.value;
_audioMixer.SetFloat("MasterParam", Mathf.Log10(mastervolume) * 20);
PlayerPrefs.SetFloat("MasterVolume", mastervolume);
}
public void SetBGMVolume()
{
float bgmvolume = Bgm_Slider.value;
_audioMixer.SetFloat("BGMParam", Mathf.Log10(bgmvolume) * 20);
PlayerPrefs.SetFloat("BGMVolume", bgmvolume);
}
public void SetFXVolume()
{
float fxvolume = Fx_Slider.value;
_audioMixer.SetFloat("FXParam", Mathf.Log10(fxvolume) * 20);
PlayerPrefs.SetFloat("FXVolume", fxvolume);
}
public void SetGunVolume()
{
float gunvolume = Gun_Slider.value;
_audioMixer.SetFloat("GunParam", Mathf.Log10(gunvolume) * 20);
PlayerPrefs.SetFloat("GunVolume", gunvolume);
}
private void LoadVolume()
{
Master_Slider.value = PlayerPrefs.GetFloat("MasterVolume");
_audioMixer.SetFloat("MasterParam", Mathf.Log10(PlayerPrefs.GetFloat("MasterVolume")) * 20);
Bgm_Slider.value = PlayerPrefs.GetFloat("BGMVolume");
_audioMixer.SetFloat("BGMParam", Mathf.Log10(PlayerPrefs.GetFloat("BGMVolume")) * 20);
Fx_Slider.value = PlayerPrefs.GetFloat("FXVolume");
_audioMixer.SetFloat("FXParam", Mathf.Log10(PlayerPrefs.GetFloat("FXVolume")) * 20);
Gun_Slider.value = PlayerPrefs.GetFloat("GunVolume");
_audioMixer.SetFloat("GunParam", Mathf.Log10(PlayerPrefs.GetFloat("GunVolume")) * 20);
}
}
졸려 죽을 것 같다.
'TIL' 카테고리의 다른 글
[TIL]2024-3-06 / 50일차 - 최종 프로젝트 시작날 (3) | 2024.03.06 |
---|---|
[TIL]2024-3-05 / 49일차 - 심화 팀플 발표 날 (0) | 2024.03.05 |
[TIL]2024-2-29 / 47일차 - 심화 팀플 4일차 (2) | 2024.02.29 |
[TIL]2024-2-28 / 46일차 - 심화 팀플 3일차 (0) | 2024.02.28 |
[TIL]2024-2-27 / 45일차 - 심화 팀플 2일차 (1) | 2024.02.27 |