inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

알고리즘 문제풀이 For Java - 1회차, 6월23일 스터디

SodiumSulfate
0

스터디일지 : 2021-06-23 수요일

번호 링크 새리 시온 케이 산희
1 https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits/ O O O O O O
2 https://leetcode.com/problems/groups-of-special-equivalent-strings/ X O O X O O
3 https://leetcode.com/problems/maximum-depth-of-n-ary-tree/ X X X O X O
4 https://leetcode.com/problems/merge-strings-alternately/ O O O O O O

공통풀이문제 : merge-strings-alternately/

class Solution {
    public String mergeAlternately(String word1, String word2) {
        char[] answer = new char[word1.length() + word2.length()];
        int idx = 0;
        int p1 = 0;
        int p2 = 0;
        int m1 = word1.length();
        int m2 = word2.length();
        while (answer.length != p2+p1) {
            if(p1 != m1) {
                answer[idx] = word1.charAt(p1);
                idx++;
                p1++;
            }

            if(p2 != m2) {
                answer[idx] = word2.charAt(p2);
                idx++;
                p2++;
            }
        }

        return String.valueOf(answer);

    }
}

public class MergeStringsAlternately {
    public static String mergeAlternately(String word1, String word2) {
        StringBuilder answer = new StringBuilder();
        // 작은 길이 만큼 for 루프 돌기
        int length = word1.length() < word2.length() ? word1.length() : word2.length();
        for (int i = 0; i < length; i++) {
            answer.append(word1.charAt(i)).append(word2.charAt(i));
        }
        if(word1.length() > length) {
            answer.append(word1.substring(length));
        }
        if(word2.length() > length) {
            answer.append(word2.substring(length));
        }
        return answer.toString();
    }
    public static void main(String[] args) {
        System.out.println(mergeAlternately("abcd", "pq"));
    }
}

새리

    public String mergeAlternately(String word1, String word2) {
        char[] char1 = word1.toCharArray();
        char[] char2 = word2.toCharArray();
        int leng1 = char1.length - 1;
        int leng2 = char2.length - 1;
        StringBuilder str = new StringBuilder();
        int counter1 = 0, counter2 = 0;
        while (counter1 <= leng1 || counter2 <= leng2) {
            if (counter1 <= leng1) {
                str.append(char1[counter1]);
                counter1++;
            }
            if (counter2 <= leng2) {
                str.append(char2[counter2]);
                counter2++;
            }
        }
        return str.toString();
    }

시온

class Solution {
    public String mergeAlternately(String word1, String word2) {
        String result = "";
        int lowerLength = word1.length() < word2.length() ? word1.length() : word2.length();
        for (int i = 0; i < lowerLength; i++) {
            result += word1.charAt(i);
            result += word2.charAt(i);
        }
        String restOfWord1 = word1.substring(lowerLength);
        String restOfWord2 = word2.substring(lowerLength);
        result += restOfWord1;
        result += restOfWord2;
        return result;
    }
}

히로

import java.io.*;
class Solution{
    public String mergeAlternately(String word1, String word2) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("First string: ");
        String s1 = br.readLine().toUpperCase();
        System.out.print("Second string: ");
        String s2 = br.readLine().toUpperCase();
        if(s1.length() != s2.length()){
            System.out.println("Unequal lengths!");
            return;
        }
        String s3 = "";
        int p1 = 0;
        int p2 = s2.length() - 1;
        while(true){
            if(p1 == s1.length() || p2 < 0)
                break;
            s3 += s1.charAt(p1);
            s3 += s2.charAt(p2);
            p1++;
            p2--;
        }
        System.out.println(s3);
    }
}

답변 0