오늘이 마지막! 30% 할인 종료⌛

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

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

  • 참석인원 : 동, 연, 새리, 시온, 케이, 산희 (6명)

  • 진행시간 : 19시~22시(3시간)

  • 문제

    • 리트코드 플랫폼에서 4문제
    • 6월 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);
    }
}

댓글을 작성해보세요.

채널톡 아이콘