に見せかける
質問する
もんだいぶんせき
これは組み合わせの数を見る問題のようだ.順序は重要ではありません.重要なのは、どの種類を縛るかです.
に答える
亥時
同じカテゴリをバンドルするため、ハッシュ・テーブルを使用する必要があります.(key,value)
からなる対をそれぞれ(String ,Integer)
と(카테고리, 나온수)
に組み合わせる.
import java.util.HashMap;
HashMap<String,Integer> hashmap = new HashMap<>();
方法hashmap.put(key,value) //(해당key존재X)삽입,(해당Key존재)갱신
hashmap.containsKey(key) //해시맵에 key존재 여부
hashmap.get(key) //value 반환
コンビネーション数
それぞれの服は単独で使用することができ、裸で帽子だけをかぶることもできるので、組み合わせるときも単独で使用することを考慮しなければなりません.
1からではなく2
から開始すれば、単独で使用する場合も考えられる.
for(int i=0;i<clothes.length;i++){
if(hashmap.containsKey(服[i][1])/既存のタイプ
hashmap.put(clothes[i][1], hashmap.get(clothes[i][1])+1); // 1個追加
else
hashmap.put(clothes[i][1],2); //2単独で追加できます。
}
すでに衣類のカテゴリが存在する場合は、出現した個数を持って、1を追加し、更新します.
逆に、初めて出現するカテゴリであれば、clothes[i][1]
ではなく1
に追加されます.
コンビネーション数
while(iter.hasNext()){
answer *= iter.next();
}
return answer - 1;
海図に存在する値を読み込み、乗算します.
例:
(A,H),(B,H),(C,K),(D,L)
Hクラスは2つ、Kクラスは1つ、Lクラスは1つあるので、それぞれH 1 2
K 1
L 1
そうですか.単独で使う場合も考えます.H 0 1 2
K 0 1
L 0 1
0を単独で使用する場合は、1から他のタイプと組み合わせることができます.1. A
2. B
3. C
4. D
5. A+C
6. A+D
7. B+C
8. B+D
9. C+D
10. A+C+D
11. B+C+D
2
を組み合わせることができる.
コード#コード# import java.util.HashMap;
import java.util.Iterator;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String,Integer> hashmap = new HashMap<String,Integer>();
for(int i=0;i<clothes.length;i++){
if(hashmap.containsKey(clothes[i][1])) //이미 있는 종류
hashmap.put(clothes[i][1], hashmap.get(clothes[i][1])+1); // 1개 추가
else
hashmap.put(clothes[i][1],2); //2추가, 단독 가능 하므로
}
Iterator<Integer> iter = hashmap.values().iterator();
while(iter.hasNext()){
answer *= iter.next(); //수학적 접근 필요, 카테션 곱
}
return answer - 1;
}
}
Reference
この問題について(に見せかける), 我々は、より多くの情報をここで見つけました
https://velog.io/@ds02168/위장
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
亥時
同じカテゴリをバンドルするため、ハッシュ・テーブルを使用する必要があります.
(key,value)
からなる対をそれぞれ(String ,Integer)
と(카테고리, 나온수)
に組み合わせる.import java.util.HashMap; HashMap<String,Integer> hashmap = new HashMap<>();
方法
hashmap.put(key,value) //(해당key존재X)삽입,(해당Key존재)갱신
hashmap.containsKey(key) //해시맵에 key존재 여부
hashmap.get(key) //value 반환
コンビネーション数
それぞれの服は単独で使用することができ、裸で帽子だけをかぶることもできるので、組み合わせるときも単独で使用することを考慮しなければなりません.
1からではなく
2
から開始すれば、単独で使用する場合も考えられる.for(int i=0;i<clothes.length;i++){ if(hashmap.containsKey(服[i][1])/既存のタイプ hashmap.put(clothes[i][1], hashmap.get(clothes[i][1])+1); // 1個追加 else hashmap.put(clothes[i][1],2); //2単独で追加できます。 }
すでに衣類のカテゴリが存在する場合は、出現した個数を持って、1を追加し、更新します.
逆に、初めて出現するカテゴリであれば、
clothes[i][1]
ではなく1
に追加されます.コンビネーション数
while(iter.hasNext()){ answer *= iter.next(); } return answer - 1;
海図に存在する値を読み込み、乗算します.
例:
(A,H),(B,H),(C,K),(D,L)
Hクラスは2つ、Kクラスは1つ、Lクラスは1つあるので、それぞれ
H 1 2
K 1
L 1
そうですか.単独で使う場合も考えます.H 0 1 2
K 0 1
L 0 1
0を単独で使用する場合は、1から他のタイプと組み合わせることができます.1. A
2. B
3. C
4. D
5. A+C
6. A+D
7. B+C
8. B+D
9. C+D
10. A+C+D
11. B+C+D
2
を組み合わせることができる.コード#コード# import java.util.HashMap;
import java.util.Iterator;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String,Integer> hashmap = new HashMap<String,Integer>();
for(int i=0;i<clothes.length;i++){
if(hashmap.containsKey(clothes[i][1])) //이미 있는 종류
hashmap.put(clothes[i][1], hashmap.get(clothes[i][1])+1); // 1개 추가
else
hashmap.put(clothes[i][1],2); //2추가, 단독 가능 하므로
}
Iterator<Integer> iter = hashmap.values().iterator();
while(iter.hasNext()){
answer *= iter.next(); //수학적 접근 필요, 카테션 곱
}
return answer - 1;
}
}
Reference
この問題について(に見せかける), 我々は、より多くの情報をここで見つけました
https://velog.io/@ds02168/위장
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.util.HashMap;
import java.util.Iterator;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String,Integer> hashmap = new HashMap<String,Integer>();
for(int i=0;i<clothes.length;i++){
if(hashmap.containsKey(clothes[i][1])) //이미 있는 종류
hashmap.put(clothes[i][1], hashmap.get(clothes[i][1])+1); // 1개 추가
else
hashmap.put(clothes[i][1],2); //2추가, 단독 가능 하므로
}
Iterator<Integer> iter = hashmap.values().iterator();
while(iter.hasNext()){
answer *= iter.next(); //수학적 접근 필요, 카테션 곱
}
return answer - 1;
}
}
Reference
この問題について(に見せかける), 我々は、より多くの情報をここで見つけました https://velog.io/@ds02168/위장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol