1. 개요
2. 가사
world.search(you);
|
Side by side, the lovelier goes up
나란히 늘어놓고, 더욱 사랑스런 것은 올려 Reach for the top, till the bubble pops 꼭대기를 향해, 거품이 터질 때까지 Take a memory, insert to the past 기억을 가져와, 과거에 삽입해 Which one is the sweetest? Save it before the last 어떤 것이 가장 달콤할까? 그건 마지막까지 남겨두자 If you turn into a table 만약 네가 테이블로 변한다면 You must be good height of my elbows 너는 분명 내 팔꿈치에 딱 맞는 높이를 가질거야 A stubby leg makes you ugly 짤막한 다리가 너를 추하게 만들어 You're the only perfect table for me 너는 오직 나를 위한 완벽한 테이블이야 If you turn into an eggplant 만일 네가 가지로 변한다면 You'll be my purple friend 너는 나의 보라색 친구가 되겠지 Scratching out marks on your body 네 몸 위의 흔적들을 긁어 없애버려 You're the only perfect eggplant for me 너는 오직 나를 위한 완벽한 가지야 I'm searching 나는 찾고 있어 If you're a cat 만일 네가 고양이라면 A little kitten 작은 아기고양이라면 You must be bluepoint 너는 블루 포인트 종 일거야 Meowing a lot 많이 야옹거리고 Hissing a lot 많이 하악거리지만 But you never purr 너는 절대 갸르릉거리진 않겠지 If you're a steak 만일 네가 스테이크라면 A filet mignon covered in mushroom sauce 버섯 소스로 덮힌 안심이라면 soft burnt on the outside 겉면은 갈색에 Medium rare inside 안은 미디움 레어겠지 If you turn into a flower 만일 네가 꽃으로 변한다면 You must be the most delicate ever 너는 가장 섬세한 꽃일 게 틀림없어 Even if you bloom just occasionally 비록 네가 가끔씩만 꽃을 피우더라도 You're the only perfect flower for me 너는 오직 나를 위한 완벽한 꽃이야 If you turn into a human 만약 네가 인간으로 변한다면 I like hog the warmth come from your hands 나는 네 손의 온기를 독차지 하고 싶어 Bitter stinky breath with hair that is oily 쓰라린 입냄새와 기름진 머리카락 You're the only perfect human for me 너는 오직 나를 위한 완벽한 인간이야 I'm searching 나는 찾고 있어 If you're a piece 만일 네가 조각이라면 A piece of shit 하나의 쓸모없는 조각이라면 You must be… U-Um? 너는 반드시… 으-음? What? What's it called? 뭐? 이걸 뭐라고 하지? What's ever again? 다시 말해볼래? D-O-P-E? 멍-청-이? If you could stay 만일 네가 그대로일 수 있다면 Stay there where you are 거기 있는 그대로 있는다면 So I can… U-Um? 그럼 나는... 으-음? Oh, what? What's it called? 오, 뭐라고? 이걸 뭐라고 하지? What's ever again? 다시 말해줄래? L-O-V-E? 사-랑? I'm searching for searching for you everwhere 난 모든 곳에서 널 찾고있어 찾고있어 I can see you in most everything 나는 거의 모든 곳에서 너를 볼 수 있지 I'm searching for Searching for you everywhere 난 모든 곳에서 널 찾고있어 찾고있어 But somehow you can't stop transforming 하지만 어떻게든 넌 변신을 멈출 수 가 없네 I'm searching for, searching for, searching for 난 찾고 있어, 찾고 있어, 찾고 있어 searching for, searching for, searching for 찾고 있어, 찾고 있어, 찾고 있어 A-Ah 아-아 I'm searching for, searching for, searching for 난 찾고 있어, 찾고 있어, 찾고 있어 Myself that has gone since you have left 네가 떠난 이후로 사라져버린 나를 Each one of us has a bucket of love 우리 모두 사랑의 양동이을 가지고 있어 Some of us empty, some of us filled up 우리 중 누군가는 텅 비었고, 우리 중 누군가는 꽉 찼어 Cut this into pieces, break us down to the cell 이걸 잘라 조각내고, 우리를 세포 단위로 부숴 Merge us back up, we have evolved now 우리를 다시 합쳐, 우리는 이제 진화했어 If you turn into a flower 만일 네가 꽃으로 변한다면 You must be the most delicate ever 너는 가장 섬세한 꽃일 게 틀림없어 Even if you bloom just occasionally 비록 네가 가끔씩만 꽃을 피우더라도 You're the only perfect flower for me 너는 오직 나를 위한 완벽한 꽃이야 If you turn into a human 만일 네가 사람으로 변한다면 I like hog the warmth come from your hands 나는 네 손의 온기를 독차지 하고싶어 Bitter stinky breath with hair that is oily 쓰라린 입냄새와 기름진 머리카락 You're the only perfect human for me 너는 오직 나를 위한 완벽한 인간이야 I'm searching 난 찾고 있어 If you're a dog 만일 네가 개라면 A little puppy 작은 강아지라면 Going ruff ruff ruff 왈 왈 왈 짖겠지 If you're a fruit 만일 네가 과일이라면 A tomato 토마토라면 Full of juice 과즙으로 가득 차 있겠지 |
2.1. 코드
public class WorldSorterSearcher {
public void bubbleSortByLoveliness(Thing[] things){
if(things.length<=1){
return;
}
int length = things.length;
while(length!=0){
int sorted = 0;
for(int i=1; i++){
if(things[i-1].getLoveliness()>things[i].getLoveliness()){
Thing temp = things[i];
things[i] = things[i-1];
things[i-1] - temp;
sorted = i;
}
}
length = sorted;
}
}
public void insertionSortBySweetness(Thing[] things){
if(things.length<=1{
return;
}
for(int i =1; i<things.length; i++){
for(int j=i; j>0; i--){
if(things[j].getSweetness()<things[j-i].getSweetness()){
Thing temp = things[j];
things[j] = things[j-1];
things[j-1] = temp;
}
}
}
}
public int searchTable(World world){
int index = -1;
Table[] tables = world.getTable();
Thing me = world.getMe();
for(int i=0; i<tables.length; i++){
boolean wobbly = true;
if(tables[i].getLegLength(0)==tables[i].getLegLength(1) &&
tables[i].getLegLength(1)==tables[i].getLegLength(2) &&
tables[i].getLegLength(2)==tables[i].getLegLength(3)){
wobbly = false;
}
if(tables[i].getHeight()==me.getHeightToElbow() && wobbly){
index = i;
}
}
return index;
}
public int searchEggplant(World world){
int index = -1;
Eggplant[] eggplants = world.getEggplant();
for(int i=0; i<eggplants.length; i++){
boolean nailed = false;
for(int j=0; j<eggplants[i].getDamage().length; j++){
nailed = eggplants[i].getDamage(j).getWeapon().getName().equals("nail");
}
if(eggplants[i].getColourHex().equals("800080") && nailed){
index = i;
}
}
return index;
}
public int searchCat(World world){
int index = -1;
Cat[] cats = world.getCat();
for(int i=0; i<cats.length; i++){
if(cats[i].getCoatStyle.getName().equals("bluePoint") &&
cats[i].getMeowFreq()<1 &&
cats[i].getHissFreq()<1 &&
index = i;
}
}
return index;
}
public int searchSteak(World world){
int index = -1;
Steak[] steaks = world.getSteak();
for(int i=0; i<steaks.length; i++){
if(steaks[i].getCut().getName().equals("fileMignon") &&
steaks[i].getSauce().getName.equals("mushroom") &&
steaks[i].getOutCondition().getColourHex().equals("A52A2A") &&
steaks[i].getDoneness().getName().equals("mediumRare")){
index = i;
}
}
return index;
}
public int searchFlower(World world){
int index = -1;
Flower[] flowers = world.getFlower();
for(int i=0; i<flowers.length; i++){
if(flowers[i].getWaterNeed().getWaterFreq()<5 &&
flowers[i].getStamina()<0.2 &&
flowers[i].getBloomFreq()>7885){
index = i;
}
}
return index;
}
public int searchHuman(World world){
int index = -1;
Human[] humans = world.getHuman();
for(int i=0; i<humans.length; i++){
if(humans[i].getTempHandL()>37 &&
humans[i].getTempHandR()>37 &&
humans[i].getBreath().getSmell.getStinkiness()>30 &&
humans[i].getHair().getGreasiness()>40){
index = i;
}
}
return index;
}
public int searchShit(World world){
int index = -1;
Shit[] shits = world.getShit();
for(int i=0; i<shits.length; i++){
if(shits[i].getDopeness().getValue()>70){
index = i;
}
}
return index;
}
public int[] searchUnchanged(World world){
int[] index = {-1, -1};
Thing[] thingsOld = world.getThing("0617-06-17T0617");
Thing[] thingsNew = world.getThing("3691-03-06T0901");
int smaller = thingsOld.length;
boolean oldIsSmaller = true;
if(smaller>thingsNew.length){
smaller = thingsNew.length;
oldIsSmaller = false;
}
for(int i=0; i<smaller; i++){
if(oldIsSmaller){
for(int j=0; j<thingsNew.length; j++){
if(thingsOld[i].equals(thingsNew[j])){
index[0] = i;
index[1] = j;
}
}
}
if(!oldIsSmaller){
for(int j=0; j<thingsOld.length; j++){
if(thingsNew[i].equals(thingsOld[j])){
index[0] = i;
index[1] = j;
}
}
}
}
return index;
}
public void bucketSortByLovability(Thing[] things, int bucketSize){
if(things.length<=1){
return;
}
Thing high = things[0];
Thing low = things[0];
for(int i=1; i<things.length; i++){
if(things[i].getLovability()>high.getLovability()){
high = things[i];
}
if(things[i].getLovability()>low.getLovability()){
low = things[i];
}
}
int range = (high.getLovability()-low.getLovability()+1)/2;
List<Thing>[] buckets = new ArrayList[BucketSize];
for(int i=0; i<bucketSize;i++){
buckets[i] = new ArrayList<>();
}
for(int i=0; i<things.length; i++){
buckets[(things[i].getLovability()-low.getLovability())
/range].add(things[i]);
}
int eachBucket = 0;
for(int i=0; i<things.length; i+=eachBucket){
eachBucket = 0;
while(eachBucket<buckets[i].size()){
things[i+eachBucket]=buckets[i].get(eachBucket);
eachBucket++;
}
}
for(int i =1; i<things.length; i++){
for(int j=i; j>0; i--){
if(things[j].getLovability()<things[j-1].getLovability()){
Thing temp = things[j];
things[j] = things[j-1];
things[j-1] = temp;
}
}
}
}
public void mergeSortByExp(Thing[] things){
if(things.length<=1{
return;
}
Thing[] temp = new Thing[things.length];
for(int i=1; i<things.length; i*=2){
mergeSortByExp(things, temp, low, Math.min(i+low,
things.length), Math.min(low+2*i, things.length));
}
}
for(int i=0; i<things.length; i++){
things[i] = temp[i];
}
}
private void mergeSortByExp(Thing[] things, Thing[] temp, int low, int mid, int high){
int l = low;
int m = mid;
for(int i=low; i<high; i++){
if(l<mid && (high<m || things[m].getExp()>things[l].getExp())){
temp[i] = things[l++]
}
else{
temp[i] = things[m++]
}
}
}
public int searchDog(World world){
int index = -1;
Dog[] dogs = world getDog();
for(int i=0; i<dogs.length; i++){
if(dogs[i].getIsBarking() && dogs[i].getBarkFreq()<0.5 &&
dogs[i].getBarkSound().equals("ruff")){
index = i;
}
}
return index;
}
public int searchFruit(World world){
int index = -1;
Fruit[] fruits = world.getFruit();
for(int i=0; i<fruits.length; i++){
if(fruits[i].getName().equals("tomato") &&
fruits[i].getMoisturePerc()>80 && fruits[i].getRipeness()>85{
index = i;
}
}
return index;
}
}
public class GodDoesntLoveYou {
public static void main(String[] args) {
World world = new World(617);
Lovable you = world.getYou();
Lovable me = world.getMe();
world.search(you, "Table");
world.search(you, "Eggplant");
world.search(you, "Flower");
world.search(you, "Human");
world.search(you);
world.search(you);
world.search(you);
world.search(you);
world.search(you);
world.search(you);
world.search(you);
world.search(you);
world.search(you);
world.search(me);
}
}
3. 여담
- world.execute(me);에 이어진다. 가사 또한 Java로 작성되었다. 전작은 내가 ○○라면~ 이라는 가정이 반복되는데 이번엔 네가 ○○가 된다면~ 으로 바뀐 것을 보아서, 전작과 화자와 청자가 반전된 듯하다. 그러나, world.execute(me);에는 없는 꽃, 인간이 언급되며, 긁어내린다는 표현이 존재하는 것을 보아, 실질적으로는 Rubber Human과 더 관련이 깊은 노래인 듯하다.
- 실제 가사는 영어이지만, 앨범의 가사집에는 코드와 일본어 가사만 작성되어 있었다. 공식 앨범 Millennium Mother에 실려있는 가사에는 코드와 영어가사가 둘다 실려 있으며, 일본어 가사가 빠져 있다.
- 제목에 걸맞게 버블 소트, 삽입 소트, 버킷 소트, 머지 소트 등 다양한 정렬 알고리즘을 모티브로 한 가사가 등장한다. 이는 코드 상에서도 직접 확인할 수 있다.
4. 기타
2017 라이브 투어에서 테이블이나 꽃등 유머와 함께 율동을 했다. (모모카슈가 선도하여)