백준 알고리즘 문제의 단계별 문제의 3번. for문 파트입니다.
몇개를 받을지를 받고 , 그리고 몇보다 작은 수를 출력할지를 받고,
그 다음 그 갯수만큼 입력이 들어옵니다.
C언어입니다.
#include<stdio.h>
int main(){
int n, cri, temp;
scanf("%d %d",&n,&cri);
for (int i=0;i<n;i++){
scanf("%d",&temp);
if (cri>temp){
printf("%d ",temp);
}
}
}
C++입니다.
#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, X, temp;
cin>>N>>X;
for (int i=0;i<N;i++){
cin>>temp;
if(temp<X){
cout<<temp<<" ";
}
}
}
python입니다
파이썬의경우 파이썬이 제공하는 편리함이 가끔은 더 돌아가게 만들기도합니다..
파이썬이 제일 어렵네요.
그리고 파이썬 print 의 경우 마지막 '\n'이 자동으로 포함되어있습니다
줄바꿈 없이 print를 하는 방법은
print("{} ".format(i),end="")
end="" 이라는게 마지막 \n 대신 "" 으로 처리하겠다입니다.
파이썬 한 줄에 여러숫자 받는법
인풋에 "1 2 3" 띄어쓰기를 통해 구분된 숫자들이 들어온다면 C언어나 다른언어는 스캔을 여러번 받으면 되지만 파이썬은 줄단위 인식이기때문에 파이썬은 한 줄에 여러 숫자를 한번에 받을 수 없습니다.
이를 해결하는 방법입니다.
sys.tedin.readline()은 input()과 같은 기능이나, 입력을 받는 속도가 빠릅니다 . 편하신대로 input()으로 대체해도됩니다.
X=sys.stdin.readline()
N,X = X.split()
N = int(N)
X = int(X)
temp = sys.stdin.readline()
templist = temp.split()
두가지 방법이있습니다.
1번째
갯수를 미리 알고있을때
x,y,z=input().split()
또는 임시변수를 준다
temp = input()
x,y,z = temp.split()
2번째 갯수를 모를때
temp = input()
templist = temp.split()
temp 라는 스트링 변수에 받아 공백을 기준으로 쪼갠 각 숫자들을 templist라는 리스트에 넣는것입니다.
이는 해당 리스트를 for문으로 취급하며 각각의 요소를 int()화 해줘야합니다.
처음 X,N 은 split 으로 스트링타입 변수를 두개로 쪼개주고 다시 인트형으로 변환합니다
또 숫자를 한번에 temp라는 스트링타입으로 입력받아
리스트로 쪼개어넣고 리스트의 숫자를 인트로 바꾸어 각각 X보다 작을때 출력합니다.
import sys
X=sys.stdin.readline()
N,X = X.split()
N = int(N)
X = int(X)
temp = sys.stdin.readline()
templist = temp.split()
for i in templist:
i = int(i)
if i<X:
print("{} ".format(i),end="")
Java입니다.
자바는 스트링토크니저를 입력하여 구했습니다. 자세한 사용법은 이전게시글에 있으니 참고하시기바랍니다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer temp;
int X,N, input;
temp = new StringTokenizer(br.readLine()); //X,N 을 입력받는다
N = Integer.parseInt(temp.nextToken());
X = Integer.parseInt(temp.nextToken());
temp = new StringTokenizer(br.readLine());
for(int i=0;i<N;i++){
input = Integer.parseInt(temp.nextToken());
if (input<X){
bw.write(input+" ");
}
}
bw.flush(); // 남아있는 데이터를 모두 출력
bw.close(); //닫음
}
}
이것으로 11번째 기본 for문 문제인 X보다 작은 수 였습니다.
'코딩 - > 백준 알고리즘 해설' 카테고리의 다른 글
백준 삼성 SW 역량 테스트 기출 문제 문제풀이 / 구슬탈출 2(백준 13460번) (0) | 2021.07.11 |
---|---|
백준 알고리즘 단계별 문제풀이 4 . while문 , A+B - 5 (백준 10952번) (0) | 2021.07.08 |
백준 알고리즘 단계별 문제풀이 3 . for문 , 별 찍기 - 2 (백준 2439번) (0) | 2021.07.06 |
백준 알고리즘 단계별 문제풀이 3 . for문 , 별 찍기 - 1 (백준 2438번) (0) | 2021.07.06 |
백준 알고리즘 단계별 문제풀이 3 . for문 , A+B - 8 (백준 11022) (0) | 2021.07.06 |