プログラマー(Java)-さっきの歌
21392 ワード
質問リンク
https://programmers.co.kr/learn/courses/30/lessons/17683
問題を解く
これらの音はreplaceを使用し、#を含めて単語に変換されます.
String [] shop = {"C#","D#","F#","G#","A#"};
for(int i=0; i<shop.length; i++){
m=m.replace(shop[i],String.valueOf(i));
}
for(int j=0; j<shop.length; j++){
musicinfo[3]=musicinfo[3].replace(shop[j],String.valueOf(j));
}
再生時間は音楽の終了時間−開始時間であり,計算を容易にするために分に換算して計算する. int playtime = Integer.parseInt(musicinfo[1].split(":")[0])*60+Integer.parseInt(musicinfo[1].split(":")[1]) - (Integer.parseInt(musicinfo[0].split(":")[0])*60+Integer.parseInt(musicinfo[0].split(":")[1]));
再生時間はメロディーを再生し続ける必要があります.tempという変数に再生時間内の音を加えた.
このときint idx=j%musicinfo[3].length(); 使用
放送時間よりも、メロディが早く終わっても、最初から録画し直すことができます.
for(int j=0; j<playtime;j++){
int idx = j%musicinfo[3].length();
temp+=musicinfo[3].substring(idx,idx+1);
}
コード#コード#
import java.util.*;
class Solution {
public String solution(String m, String[] musicinfos) {
String answer = "";
String [] shop = {"C#","D#","F#","G#","A#"};
int savetime=0;
for(int i=0; i<shop.length; i++){
m=m.replace(shop[i],String.valueOf(i));
}
for(int i=0; i<musicinfos.length;i++){
String [] musicinfo = musicinfos[i].split(",");
String temp="";
for(int j=0; j<shop.length; j++){
musicinfo[3]=musicinfo[3].replace(shop[j],String.valueOf(j));
}
int playtime = Integer.parseInt(musicinfo[1].split(":")[0])*60+Integer.parseInt(musicinfo[1].split(":")[1]) - (Integer.parseInt(musicinfo[0].split(":")[0])*60+Integer.parseInt(musicinfo[0].split(":")[1]));
for(int j=0; j<playtime;j++){
int idx = j%musicinfo[3].length();
temp+=musicinfo[3].substring(idx,idx+1);
}
if(temp.contains(m)){
if(answer.equals("")){
answer = musicinfo[2];
savetime= playtime;
}else{
if(playtime>savetime){
answer=musicinfo[2];
savetime=playtime;
}
}
}
}
if("".equals(answer)){
answer = "(None)";
}
return answer;
}
}
Reference
この問題について(プログラマー(Java)-さっきの歌), 我々は、より多くの情報をここで見つけました https://velog.io/@courage331/프로그래머스Java-3차방금그곡テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol